paulstarke / PhaseBetweener

Creating animation sequences between sparse key frames using motion phase features.
182 stars 25 forks source link

I trained the wrong model #10

Closed dj-kefir-siorbacz closed 1 year ago

dj-kefir-siorbacz commented 1 year ago

Hi @pauzii, another issue here.

I trained the model as per the instruction in the README.md (+custom Barracuda build, that I mentioned in an other issue), but I can't use it.

The reason seems to be that it's not the same model as the LaFAN1_150_DeepPhases or LaFAN1_150_LocalPhases (LaFAN1_150_NoPhases doesn;t work at all so I ignore it), but rather it's more similar (in input and output sizes) to the LaFan_150_GNN_DeepPhases_Styles model (which produces shitty results).

My trained model is called 150 (the number of epochs, right?) image.

dj-kefir-siorbacz commented 1 year ago

See the summary of each model here:

150 image

LaFAN1_150_DeepPhases image

LaFAN1_150_LocalPhases image

LaFan_150_GNN_DeepPhases_Styles image

dj-kefir-siorbacz commented 1 year ago

Shouldn't we be running: https://github.com/pauzii/PhaseBetweener/blob/main/DeepLearningONNX/Models/AEGNN/Network.py

??

paulstarke commented 1 year ago

Hi @dj-kefir-siorbacz ! It seems like you trained your model with style labels in the input and hence the input dimension is different from the uploaded models. I just updated MotionExporter.cs and AuthoringInBetweeningController.cs in the repo. Please download them again, export, and retrain. I forgot to comment out one line of code in the exporter. Sorry for the inconvenience!

You can now choose in the exporter's UI if you want to use stylization. You can test LaFan_150_GNN_DeepPhases_Styles in the authoring demo scene: there is a "style control" gameobject with an example path. Make sure to check "ModelIncludesStyleLabels" in the controllers inspector, so that the inputs are correctly fed into the model.

If you set up everything as indented it should work now!

dj-kefir-siorbacz commented 1 year ago

Hi @pauzii ! Interesting. I see I can now use the LaFan_150_GNN_DeepPhases_Styles with Model Includes Style Labels checked. I also see that I can't use LaFAN1_150_DeepPhases with this option checked, due to input shape mismatch - makes sense.

I'll try to retrain and will let you know if the output is the same as in LaFan_150_GNN_DeepPhases_Styles.

dj-kefir-siorbacz commented 1 year ago

Ok, training in progress. I see that even a model trained on 1 epoch does fairly good when imported to Unity :D

However, there is one thing I don'tm understand:

my model: image

built-in model: image

Why is there such big difference in number of weights? And why layers differ?

paulstarke commented 1 year ago

Looking good! I think you can ignore the differences as long as the motion doesn't look broken and no errors are popping up in the console. The built-in models are actually an older version than In-BetweeningNetwork.py.

Again, if it doesn't work, perhaps using the same pytorch version (1.9) will help.