naver / dust3r

DUSt3R: Geometric 3D Vision Made Easy
https://dust3r.europe.naverlabs.com/
Other
4.63k stars 515 forks source link

About training command and train_loss, val_loss #130

Open wuqun-tju opened 5 days ago

wuqun-tju commented 5 days ago

Thank you for your excellent work! I have some questions about training.

  1. In the train command line you used for training your models, there isn't dataset
  2. About training loss, when I load "DUSt3R_ViTLarge_BaseDecoder_512_dpt.pth" as pretrained model, and use co3d dataset to train it, the train loss will down from positive value to negative value, is it right?
  3. the val loss function is different from the train loss function in the code, but I think they should be the same. could you explain it, thank you!
yocabon commented 4 days ago

Hi,

  1. not sure what you mean here.
  2. That's normal, it's because of the confidence loss
  3. the validation loss is a bit different, it's computing some error of alignment between the prediction (rescaled to the dataset scale) and gt. that's not super important.
wuqun-tju commented 4 days ago

Hi,

  1. not sure what you mean here.
  2. That's normal, it's because of the confidence loss
  3. the validation loss is a bit different, it's computing some error of alignment between the prediction (rescaled to the dataset scale) and gt. that's not super important.

Thank you for your quick reply, About Question 1, It losses a "Waymo"; I rewrite as follows: In the train command line you used for training your models, there isn't a Waymo dataset. I post it here:

--train_dataset=" + 10_000 @ Habitat(1_000_000, split='train', aug_crop=16, resolution=[(512, 384), (512, 336), (512, 288), (512, 256), (512, 160)], transform=ColorJitter) + 10_000 @ BlendedMVS(split='train', aug_crop=16, resolution=[(512, 384), (512, 336), (512, 288), (512, 256), (512, 160)], transform=ColorJitter) + 10_000 @ MegaDepth(split='train', aug_crop=16, resolution=[(512, 384), (512, 336), (512, 288), (512, 256), (512, 160)], transform=ColorJitter) + 10_000 @ ARKitScenes(aug_crop=256, resolution=[(512, 384), (512, 336), (512, 288), (512, 256), (512, 160)], transform=ColorJitter) + 10_000 @ Co3d(split='train', aug_crop=16, mask_bg='rand', resolution=[(512, 384), (512, 336), (512, 288), (512, 256), (512, 160)], transform=ColorJitter) + 10_000 @ StaticThings3D(aug_crop=256, mask_bg='rand', resolution=[(512, 384), (512, 336), (512, 288), (512, 256), (512, 160)], transform=ColorJitter) + 10_000 @ ScanNetpp(split='train', aug_crop=256, resolution=[(512, 384), (512, 336), (512, 288), (512, 256), (512, 160)], transform=ColorJitter) + 10_000 @ InternalUnreleasedDataset(aug_crop=128, resolution=[(512, 384), (512, 336), (512, 288), (512, 256), (512, 160)], transform=ColorJitter) "

yocabon commented 4 days ago

yes, Waymo was replaced by an internal dataset for the checkpoints we released and the training commands reflect that. It was used to train the models we used in the publication.

Master-cai commented 4 days ago

@yocabon Hi, I'm wondering what's the difference between the old and updated checkpoints? Why are they updated? I'm still using the old ones. Thanks!

wuqun-tju commented 3 days ago

yes, Waymo was replaced by an internal dataset for the checkpoints we released and the training commands reflect that. It was used to train the models we used in the publication.

Thank you for your quick reply. 1) Why replace Waymo in released model 2) If we use Waymo replace internal dataset to train, can it reflect the result of the pulication?
Otherwise, Normally, should the val loss decrease along with the decrease in train loss, even if they are not the same loss functions?

yocabon commented 3 days ago

We have done some data housekeeping. Wrt performance, there shouldn't be a big difference.