paulstarke/PhaseBetweener

I trained the wrong model

dj-kefir-siorbacz opened this issue · 6 comments

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.

See the summary of each model here:

150
image

LaFAN1_150_DeepPhases
image

LaFAN1_150_LocalPhases
image

LaFan_150_GNN_DeepPhases_Styles
image

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!

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.

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?

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.