-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Small equivariant example #5
Comments
Hi @DeNeutoy Can you let me know how large the difference is?
not this:
I think it is because Best |
Thanks for the response @yilunliao - sorry, I was rotating the forces1 and comparing as you suggested - this was a bug in my snippet, but not my actual code. I dug into this a little and when I look at the nodes which are not correct, I see this:
indicating that it is only nodes which have edges that are affected. I then confirmed this by modifying the input graph, and only the
but changing the senders doesn't:
I was wondering if this might alert you to something? I then started stepping through the code, and the embeddings are equal up until the edge degree embedding, but if I remove this, they are then unequal again after the For the node indices which don't match, the absolute difference is large:
This is with a completely untrained model, although I wouldn't expect that to make a difference. Any help is much appreciated! |
I see. Can you make sure the results of edge-degree embeddings satisfy equivariance constraint? I have limited bandwidth until the weekend or next week but will look at this and provide another example. (Ping me if you have not heard from me) |
Sorry for the late reply. Have you figured out the issue? I have an incoming deadline, so I would be late to response, but I will make sure we can find the reason. Best |
Hi @yilunliao , I haven't, unfortunately. I tried looking into the edge degree embeddings, but it's not as simple as looking at a rotation of the input vectors - the edge_embedding outputs a If you had a small example, that would be helpful - but I understand if this is difficult to produce. These things are quite complex! |
Hi @DeNeutoy . Here is how we rotate the embedding back to the original coordinate after SO(2) linear layers: Sure. I can provide a simple example to test that, but I will do that next weekend due to an incoming deadline. Best |
Hi @yilunliao, A small example would be extremely useful to build on your codebase! |
Hi @yilunliao,
Thanks for the nice codebase - I am adapting it for another purpose, and I was running into some issues when checking the outputs are actually equivariant. Are there any init flags that must be set in a certain way to guarantee equivariance?
I have a snippet equivalent to this:
and the energies are equal, but the forces do not obey equality under rotation. I've turned off all dropout and set the model to eval - just wondering if there are any other tricks to retain the genuine eq behaviour. Thanks!
The text was updated successfully, but these errors were encountered: