vchoutas / smplify-x

Expressive Body Capture: 3D Hands, Face, and Body from a Single Image
https://smpl-x.is.tue.mpg.de/
Other
1.77k stars 340 forks source link

default optimization methods #65

Closed iammarvelous closed 4 years ago

iammarvelous commented 4 years ago

It seems that the default optimizer in this repo is Adam (just realized it is overridden in the yaml), which is different from the same as mentioned in the paper (L-BFGS). Is there a particular reason for this? Is there a significant difference (quantitative comparisons) when using these two different optimizers (Adam, LBFGS)?

geopavlakos commented 4 years ago

Indeed, LBFGS (with line search) is the default optimization algorithm for SMPLify-X. Since we inherited this decision from SMPLify, we didn't experiment extensively with Adam.

iammarvelous commented 4 years ago

I understand. I asked this question because I found Adam is used in SPIN. I know this is for the sake of speed. I am just curious whether it leads to sub-optimal SMPLify fits for initial fits in SPIN if the on-the-fly version of SMPLify is used in initialization.

geopavlakos commented 4 years ago

Adam can be a convenient choice because it is faster and its PyTorch implementation supports out-of-the-box batch size larger than one. However, we have empirically observed that LBFGS with line search typically provides better fitting results. For a more comprehensive comparison, you could experiment with both options.

iammarvelous commented 4 years ago

Thanks for the clarification!