TRI-ML / packnet-sfm

TRI-ML Monocular Depth Estimation Repository
https://tri-ml.github.io/packnet-sfm/
MIT License
1.24k stars 243 forks source link

Cannot get the result in the paper #107

Open weihaosky opened 3 years ago

weihaosky commented 3 years ago

Hi, I use this code to train the model with train_kitti.yaml, but the abs_real on the test set is only 0.119, instead of 0.111 in the paper. I tried 4 gpus and 8 gpus but the results are similar. What is the problem? Do I miss something? Many thanks.

VitorGuizilini-TRI commented 3 years ago

Since the networks are being trained from scratch there is some variability during training sessions, these are the scripts we used to obtain the numbers generated in the paper. Are you training using docker?

weihaosky commented 3 years ago

I tried both docker and local conda environment, the results are all around 0.120.

gxd1994 commented 3 years ago

I also tried both docker and local conda environment, the results are all around 0.120.

gxd1994 commented 3 years ago

Hi, 0.111 is about kitti validation data or test data?

VitorGuizilini-TRI commented 3 years ago

It's on the test Eigen split. I will take a deeper look and see if there are any differences from the public and internal versions, and re-run the experiments with the public code. In the meantime, can you replicate the results using our pre-trained models?

weihaosky commented 3 years ago

Yes. The abs_real error of the pretrained model "PackNet01_MR_selfsup_K.ckpt" is 0.111

porwalnaman01 commented 3 years ago

@weihaosky Hello there, did you receive this error while training, if yes then how did you solve it?

Traceback (most recent call last): File "scripts/train.py", line 68, in train(args.file) File "scripts/train.py", line 63, in train trainer.fit(model_wrapper) File "/disk1/dan/Naman/packnet-sfm/packnet_sfm/trainers/horovod_trainer.py", line 65, in fit validation_output = self.validate(val_dataloaders, module) File "/disk1/dan/Naman/packnet-sfm/packnet_sfm/trainers/horovod_trainer.py", line 120, in validate output = module.validation_step(batch, i, n) File "/disk1/dan/Naman/packnet-sfm/packnet_sfm/models/model_wrapper.py", line 194, in validation_step output = self.evaluate_depth(batch) File "/disk1/dan/Naman/packnet-sfm/packnet_sfm/models/model_wrapper.py", line 302, in evaluate_depth inv_depths[0], inv_depths_flipped[0], method='mean') File "/disk1/dan/Naman/packnet-sfm/packnet_sfm/utils/depth.py", line 247, in post_process_inv_depth B,C, H, W = inv_depth.shape ValueError: not enough values to unpack (expected 4, got 3)

weihaosky commented 3 years ago

Cannot remember. It seems this is because the shape of inv_depth has only 3 dimensions, but its shape should be [B, 1, H, W]. You can print it and check why.