3DCrowdNet_RELEASE icon indicating copy to clipboard operation
3DCrowdNet_RELEASE copied to clipboard

Question about reproducing Table 8

Open mimiliaogo opened this issue 1 year ago • 5 comments

Hi, Thank you for your fantastic work! However, I tried to reproduce table8. using the command python train.py --amp --continue --gpu 0 --cfg ../assets/yaml/3dpw.yml and got the result below:

* train for 10 epoch
	MPJPE from mesh: 93.76 mm
	PA MPJPE from mesh: 56.54 mm
	MPVPE from mesh: 110.48 mm
* train for 5 epoch
	MPJPE from mesh: 85.21 mm
	PA MPJPE from mesh: 52.53 mm
	MPVPE from mesh: 101.27 mm
* train for 4 epoch
        MPJPE from mesh: 85.65 mm
        PA MPJPE from mesh: 51.91 mm
        MPVPE from mesh: 101.10 mm
* train for 2 epoch
	MPJPE from mesh: 84.16 mm
	PA MPJPE from mesh: 52.13 mm
	MPVPE from mesh: 99.90 mm
* train for 1 epoch
	MPJPE from mesh: 83.17 mm
	PA MPJPE from mesh: 52.34 mm
	MPVPE from mesh: 99.32 mm

* train for 0 epoch(pretrained)
	MPJPE from mesh: 712.35 mm
	PA MPJPE from mesh: 98.89 mm
	MPVPE from mesh: 734.46 mm

Is it normal to get to the best point only after 1 epoch? (BTW, I used the pre-trained ResNet-50 weights of xiao2018simple) Also is it normal for the results to be worse as the epoch increasing?

Thank you!

mimiliaogo avatar Aug 31 '22 01:08 mimiliaogo

Hi, the result can vary depending on the mini batch size. You are using only 1 gpu which is a quarter of my setting. I recommend to adjust the learning rate proportionally.

TL;DR Yes. It can be close to the best accuracy.

But the upper bound of the accuracy is actually higher than the Table 8. 40epoches training with learning rate decay at 30epoch give better accuracy. You can try

hongsukchoi avatar Aug 31 '22 12:08 hongsukchoi

Hi, thank you for your response. I used mini-batch size 64 and num_threads 16, which is totally the same as you. I only used one RTX3090 but it doesn't have any memory issues using your configuration. However, my reproduction results are worse than yours on both table 5 and table 8 as below:

Evaluate on 3DPW-CROWD (table 5)

  • train for 10 epoch MPJPE from mesh: 88.44 mm PA MPJPE from mesh: 56.14 mm MPVPE from mesh: 110.28 mm

Evaluate on 3DPW-test (table 8)

  • train for 1 epoch MPJPE from mesh: 83.17 mm PA MPJPE from mesh: 52.34 mm MPVPE from mesh: 99.32 mm

I wonder if I use the exact same batch size and num workers with you, do I still need to adjust the learning rate? Do you have any suggestions about the training config for me using only one RTX3090 which has the same batch size with you to reproduce your work? Thank you so much!

mimiliaogo avatar Sep 01 '22 01:09 mimiliaogo

My setting's batch size is 256 since I used 4 gpus:)

hongsukchoi avatar Sep 01 '22 02:09 hongsukchoi

So if I used only one gpu, should I divide my learning rate by 4?

mimiliaogo avatar Sep 01 '22 08:09 mimiliaogo

Yes!

hongsukchoi avatar Sep 01 '22 13:09 hongsukchoi