Git Product home page Git Product logo

Comments (3)

aluo-x avatar aluo-x commented on June 1, 2024 2

Just to document a few things, totally unscientific.
I've also been experimenting with different normalizations on the generator w/ the point discriminator.

The following experiments were done with the same discriminator, and only the generator was modified. I train for only ~100 epochs, and visually check if the results look like they are converging.

  • Spectral norm - fails, most values from the sdf network are very extreme
  • Weak spectral norm (only apply norm if value is greater than 1) - fails, either invalid values or only shapes for cones/blobs
  • Instance norm - works, but visually seems worse than layer/weight norm
  • Group norm - works, I wonder if this would help in the multi-class case
  • Weight norm - works (haven't benchmarked, visually looks comparable to layer norm, seems less diverse)
  • Layer norm (repo default)

Seems quite robust to choice of activation:

  • Leaky relu w/ slope 0.1 - works
  • ELU - works
  • ReLU (repo default)

Edit: training with instance norm is less stable than layer norm, at least in terms of generator loss.

from shapegan.

extragoya avatar extragoya commented on June 1, 2024 1

Thanks for taking the time to respond

If you want to be sure, you should test different batch compositions and BN layers.

Yeah, definitely - doing that now. Was just trying to bootstrap off of you :)

Thanks again for sharing your code - best of luck in your research.

from shapegan.

marian42 avatar marian42 commented on June 1, 2024

I'm afraid I don't have good answers for both of these questions.

I remember trying batch normalization in my DeepSDF implementation, but IIRC training was unsuccessful with that. (The DeepSDF authors say that batch normalization didn't work for them either, but weight normalization does work)

For the batch composition, I changed the implementation of the data loader throughout development and used the most "convenient" way of composing the batches. The current implementation expects all data to be in a single .to file, so this would of course fail if there is not enough RAM. I don't remember finding that the composition of the batch (few shapes vs many shapes) makes a difference, although testing for this parameter wasn't my goal.

If you want to be sure, you should test different batch compositions and BN layers.

from shapegan.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.