garyzhao / SemGCN

The Pytorch implementation for "Semantic Graph Convolutional Networks for 3D Human Pose Regression" (CVPR 2019).
https://arxiv.org/abs/1904.03345
Apache License 2.0
461 stars 78 forks source link

Is there any training trick? I can't get the provide result. #3

Closed lrxjason closed 4 years ago

lrxjason commented 4 years ago

I follow the instructions and get the result for the SemGCN without the non-local part. But the result is not like yours in the table. Here is the result:

Epoch: 45 | LR: 0.00066483 Train |################################| (24372/24372) Data: 0.000093s | Batch: 0.026s | Total: 0:10:38 | ETA: 0:00:01 | Loss: 0.0002 Eval |################################| (8490/8490) Data: 0.000082s | Batch: 0.008s | Total: 0:01:07 | ETA: 0:00:01 | MPJPE: 44.7153 | P-MPJPE: 35.0317

Epoch: 46 | LR: 0.00066483 Train |################################| (24372/24372) Data: 0.000130s | Batch: 0.026s | Total: 0:10:37 | ETA: 0:00:01 | Loss: 0.0002 Eval |################################| (8490/8490) Data: 0.000087s | Batch: 0.008s | Total: 0:01:07 | ETA: 0:00:01 | MPJPE: 45.4787 | P-MPJPE: 35.7501

Epoch: 47 | LR: 0.00063824 Train |################################| (24372/24372) Data: 0.000120s | Batch: 0.026s | Total: 0:10:36 | ETA: 0:00:01 | Loss: 0.0002 Eval |################################| (8490/8490) Data: 0.000078s | Batch: 0.008s | Total: 0:01:07 | ETA: 0:00:01 | MPJPE: 45.8799 | P-MPJPE: 35.6219

Epoch: 48 | LR: 0.00063824 Train |################################| (24372/24372) Data: 0.000094s | Batch: 0.026s | Total: 0:10:33 | ETA: 0:00:01 | Loss: 0.0002 Eval |################################| (8490/8490) Data: 0.000071s | Batch: 0.008s | Total: 0:01:07 | ETA: 0:00:01 | MPJPE: 47.1181 | P-MPJPE: 35.5356

Epoch: 49 | LR: 0.00063824 Train |################################| (24372/24372) Data: 0.000122s | Batch: 0.026s | Total: 0:10:40 | ETA: 0:00:01 | Loss: 0.0002 Eval |################################| (8490/8490) Data: 0.000128s | Batch: 0.008s | Total: 0:01:07 | ETA: 0:00:01 | MPJPE: 45.3596 | P-MPJPE: 35.5696

Epoch: 50 | LR: 0.00063824 Train |################################| (24372/24372) Data: 0.000105s | Batch: 0.026s | Total: 0:10:37 | ETA: 0:00:01 | Loss: 0.0001 Eval |################################| (8490/8490) Data: 0.000071s | Batch: 0.008s | Total: 0:01:07 | ETA: 0:00:01 | MPJPE: 43.9466 | P-MPJPE: 34.7108

Do you have some suggestions?

garyzhao commented 4 years ago

Hi,

Thanks for your interest in our work.

The results reported in the table are using the same training script we provided. Let me clarify some key points here.

  1. The MPJPEs in the table are computed in an action-wise manner, which follows the common practice of other papers. However, the MPJPEs shown during training are computed averaged on all the testing samples (which are usually 0.5-1.0 mm higher). To get the action-wise MPJPEs, you need to use the "--evaluate" command to evaluate your trained model, e.g.,

python main_gcn.py --evaluate checkpoint/${PATH_TO_MODEL}

  1. The column of "# of Epochs" in the table means the epochs we used for training, but the best results may not be achieved in the last epoch. In the checkpoint folder, the best model is saved with the name "ckpt_best.pth.tar". You can use the "--evaluate" command to check it, e.g.,

python main_gcn.py --evaluate checkpoint/${PATH_TO_CKPT}/ckpt_best.pth.tar

A better way is to evaluate the model in a validation set during training. But here we just follow the common way as employed in other papers.

Best, Long

lrxjason commented 4 years ago

Thank you for your response. Do you have the plan to release the perceptual feature pooling configuration code?

garyzhao commented 4 years ago

Currently, we don't have the plan to release Config 2, since the setting is quite different. We may release another repo for it in the future.