Why do we need a separately stored `car_nerf_state_dict`?
Closed this issue · 2 comments
Dear MARS team, thank you for opensourcing this awesome work! I'm trying to understand the codes but encountered some problems:
It seems mandatory to properly fill the car_nerf_state_dict_path
from cicai_config.py
in order to start a regular training. But is this car_nerf_state_dict_path
really necessary? Here's my confusion:
It looks like the car_nerf_state_dict_path
was only used in line 82-83 from car_nerf.py
to initialize the self.fields
of a CarNeRF
class. However, since CarNeRF
is a subclass of nn.Module
, self.fields
will be automatically discovered by PyTorch and saved into a training checkpoint under the nerfstudio training framework. This would mean the weights loaded from car_nerf_state_dict_path
will be later overwritten by the weights from the training checkpoint file outputted by nerfstudio, during its trainer.setup()
method.
Since the weights from car_nerf_state_dict_path
would be overwritten anyway, it seems the separately stored car_nerf_state_dict
doesn't serve any purpose. Can you help me with this confusion?
I am working on the master branch (commit ID: 5d75675).
Thank you!
Hi, I would recommend you referring to the CarNeRF paper. We use the pretrained carnerf to initialize, that is the reason why we need to load a checkpoint separately.
Thanks for the reference!