scomup / EasyGaussianSplatting

MIT License
106 stars 6 forks source link

backword*.py is only for validation? #1

Closed yudai09 closed 3 months ago

yudai09 commented 3 months ago

Thank you for sharing the detailed explanations and simple implementation examples!

I would like to ask you a question about backword. If I understand correctly, backword.pdf explains the formula for calculating backword process by derivatives, and the implementation is written in backword*.py. On the other hand, in train.py, it seems that it does not use the backword implementation, but use torch's autograd, which is a bit confusing to me. backword.pdf and backword*.py exist only to explain and verify the process of backword?

scomup commented 3 months ago

The backward_cpu.py and backward_gpu.py scripts are only used to verify that all computations of the Jacobians are completely correct. The train.py script does not use Torch's autograd but instead uses our backward implementation on the GPU (gsmodel.py), whose computations are verified by backward_gpu.py.

So, if you just want to train the model, you don't need the backward_*.py scripts. However, our project is not only for practical use but also for study purposes. I believe the backward_*.py scripts show how I studied the process, so they are very useful if you want to deeply understand the backward process of Gaussian Splatting.

yudai09 commented 3 months ago

@scomup Thank you for your response. I had missed the use of backward() implemented in GSModel. Now I understood.

So, if you just want to train the model, you don't need the backward*.py scripts. However, our project is not only for practical use but also for study purposes. I believe the backward*.py scripts show how I studied the process, so they are very useful if you want to deeply understand the backward process of Gaussian Splatting.

Yes, I'm learning from your scripts, it's very helpful to understand 3D gaussian splatting.

Thank you very much for the great work.