Giter VIP home page Giter VIP logo

Comments (5)

thomasneff avatar thomasneff commented on July 20, 2024 1

Hi!

You're exactly right, I think this might have been a misnomer that carried over from previous' code bases that we never got around to fixing. Epoch is the same as an interation and not really an epoch, yeah.

from adanerf.

thomasneff avatar thomasneff commented on July 20, 2024 1

Hi!

The corresponding losses are implemented here:

https://github.com/thomasneff/AdaNeRF/blob/main/src/losses.py#L87

Essentially, we start with the NeRFWeightMultiplicationLoss forcing initial outputs to be one (not zero) because lossBlendingStart is at 25000. This means before iteration 25000, we only have the "One" loss in NeRFWeightMultiplicationLoss. Afterwards, we slowly blend from "One" to "Zero" and also add in the "NerfA" that computes an L1 loss w.r.t. the alpha outputs. The logic of blending between the losses all happens within NeRFWeightMultiplicationLoss.

Note that our configs have 0.0025 as a baseline value, and we show the exact loss weights we used for each scene in our supplementary material (Table 1):

https://thomasneff.github.io/adanerf/adanerf_supplementary.pdf

About the weight locking:

We mention that the sampling network is locked throughout the sparse training phase in the paper, and that the sparse training phase is done for around ~220k iterations, that's where the 80000 in the config comes from, as we lock if after 80000.

The shading network being locked for 1000 iteration at the start indeed seems to be missing from the paper, but this is just to ensure that the sampling network is actually outputting constant "One"s before we start with dense training - this likely is not super impactful and is only a minor detail.

Hope this explains your questions!

from adanerf.

dogyoonlee avatar dogyoonlee commented on July 20, 2024

@thomasneff
Thank you for your kind and quick reply!!

In addition, I have some more questions about the lossweight to train the sample network and nerf.

In your paper, you said that you initialize the sample network to make initial output to be zero and set the initial loss weight for each loss(mse loss and loss that makes initial sample importance to be 1) as 0.01 and 1.0 .
However, I cannot find that part in your code.
Loss weights are samely applied across the entire training as 1.0 and 0.0025 to mse and sparsity loss, except iterations before 25000 to apply the sparsity loss after dense training.

In addition, nerf network is locked before 1000 and sample network is locked after 80000 iters, which is not fully explained in your paper.
could you explain about this setting?

It will be really helpful to implement your code in my environment, which is purely coded in pure puthon and pytorch without cuda!

I'm really appreciate to your kind reply again!

from adanerf.

dogyoonlee avatar dogyoonlee commented on July 20, 2024

@thomasneff
Thank you for your kind reply!!
It really helpful to me to implement your idea!

by the way, do you still on the research field related to accelerate the nerf training or efficient rendering using nerf?

from adanerf.

dogyoonlee avatar dogyoonlee commented on July 20, 2024

@thomasneff

I'm sorry to bother you again.

As I understand your code, dense training and fine training is executed separately when train the AdaNeRF.

Then, is it right that the learning rate to train the fine-tuning is reset to 1e-4 after dense training + sparsification + sparse training?

from adanerf.

Related Issues (9)

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.