DeepMotionEditing / deep-motion-editing

An end-to-end library for editing and rendering motion of 3D characters with deep learning [SIGGRAPH 2020]
BSD 2-Clause "Simplified" License
1.58k stars 256 forks source link

train with my dataset #41

Closed godzillalla closed 4 years ago

godzillalla commented 4 years ago

Hi, I want to train style transfer with my database, I tried many times, but the program always gave me an error. The error is "RuntimeError: CUDA error: device-side assert triggered" and "index out of bounds".

So I want to ask that how do I define a YML file? After defining a database like xia, can I leave the rest of the code unchanged? Thank you!

HalfSummer11 commented 4 years ago

Hi, I'm sorry but the current code is still quite entangled with the training dataset we use. For example, the number of channels in some layers should be in accordance with the number of joints of the training skeleton. (Now they're hardcoded in config.py.) Furthermore, the scripts to generate the dataset from BVH files should also be accustomed to each dataset. You can see in data_proc/export_train.py that we process xia and bfa differently. Since xia's data happens to have content labels, we use that as a reference to do the train-test split. That's what content_test_cnt is for. In our next update, we'll further refactor the code to support training with customized data & release relevant details.

godzillalla commented 4 years ago

Thank you very much. I've retargeted our bvh to the skeleton of the code processing. But some definitions of the overall data structure are still incorrect, resulting in errors in the label correspondence. I also process our data in the way of bfa, but we have too few frames in our data, so I change the parameter _windowsize and _windowstep

image If I change this parameter, does the rest of the code need to be changed again?

HalfSummer11 commented 4 years ago

Regarding the label correspondence, now we read the style label of the data from the BVH filename. You can change the related code (line 219~211) in generate_database_bfa to make sure it's compatible with your BVH filenames. Also if you are working with many small BVH files, you may want to modify generate_database_bfa's code to do the train-test split in a different way (use some BVH files for testing). Our bfa BVHs are very long so we have to take window 2 frames for testing from every window 20 frames, which kind of requires the BVH to be as least window * 20 frames in the first place. A window size of 16 might be a bit small? But let's see how the training goes. (Oh, and please note we assume our input BVH files are of 120 fps. If yours are not you may want to change the downsample parameter.) Hope this would help!

godzillalla commented 4 years ago

thanks a lot!