EricGuo5513 / momask-codes

Official implementation of "MoMask: Generative Masked Modeling of 3D Human Motions (CVPR2024)"
https://ericguo5513.github.io/momask/
MIT License
689 stars 56 forks source link

AttributeError: 'Namespace' object has no attribute 'max_motion_length' #18

Closed hdjsjyl closed 5 months ago

hdjsjyl commented 5 months ago

Hi Author, I am trying to train momask on my customized data. I get the following error:

image

Thank you!

Murrol commented 5 months ago

Try to make your own configure for your data, e.g. opt.max_motion_length = xxx

shileims commented 5 months ago

hi @Murrol , Thanks for your reply.

  1. I comment the eval part, the training works well. Does this parameter have influence on performance?
  2. Do you have standard rule of defining the max_motion_length? How to define it in HumanML3D dataset? Thank you
Murrol commented 5 months ago

Hi, thanks for your interest.

hi @Murrol , Thanks for your reply.

  1. I comment the eval part, the training works well. Does this parameter have influence on performance?

It would not affect training. While, sometimes, it would be helpful to use the eval part to select the checkpoint for the best performance. Besides, you can either select checkpoint manually or based on the accuracy/loss curve.

  1. Do you have standard rule of defining the max_motion_length? How to define it in HumanML3D dataset?

We do not have a standard to define the max_motion_length. Most of the motions in the dataset fall within this length. (Actually, we obtained the motion dataset first, processed them to a suitable length which is ~10s, and then annotated them to build HumanML3D.)

Thank you

shileims commented 5 months ago

hi @Murrol , Thanks for your reply.

  1. That's what I want to know. How to select the checkpoint by using your eval part. The problem is I don't have a pre-defined opt.txt. So I would like to know, how you do that?
  2. If you processed your dataset ~10s, would I say the max_motion_length == 10x30fps is a good setting for max_motion_length parameter? Thanks
Murrol commented 5 months ago

hi @Murrol , Thanks for your reply.

  1. That's what I want to know. How to select the checkpoint by using your eval part. The problem is I don't have a pre-defined opt.txt. So I would like to know, how you do that?

The eval part can calculate the FID on the validation set. Thus, we are able to select the checkpoint with the best validation FID. You can train a motion feature extractor through a reconstruction objective or text-motion clip objective on your own data. You may refer to our prior work text-to-motion for the details.

  1. If you processed your dataset ~10s, would I say the max_motion_length == 10x30fps is a good setting for max_motion_length parameter? Thanks

You are right. While HumanML3D is at 20fps, so the maximum frame number is about 200. It's not very strict especially on your own dataset; you can adjust it based on your needs.

hdjsjyl commented 5 months ago

Hi @Murrol , Thanks for your reply. That's my question. After training RVQVAE. How to evaluate the checkpoints and get the best checkpoint with the highest FID score? Thanks

Murrol commented 5 months ago

If I understood your question correctly, that's the simplest answer I can provide:

Save the checkpoint every 500 iterations, load each checkpoint, run an evaluation round on the validation set, note down the results, and then compare the results from all the checkpoints you have. This way, you'll be able to determine which checkpoint suits your needs the best.

hdjsjyl commented 5 months ago

@Murrol thank you.