Differences between latent and edge energy MLP dimensions and layer dimensions #28
-
I don't think I fully get the differences between Here is an example I use:
Sorry this is like four in one, I thought they kind of fit together. This all comes of course from being a materials-science user rather than someone who actually puts together pytorch models. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 4 replies
-
Hi @apoletayev , Thanks for your interest in our code!
Almost---
No constraints.
the code knows it needs the input width of the two body latent to have the dimension of the initial edge embedding, which could for example be 3 + 3 + 8 = 14 for 3 atom types and 8 radial basis functions. Then the actual MLP that will be built would have dimensions [14, 64].
Yes, each entry in
Yes; the input width of the final edge energy MLP is automatically set as the feature width that is output by the last Allegro layer, which is the output of the final latent MLP, which is set by
The MLPs are entirely scalar and correspond to the block labeled "latent" in the paper's schematic. Each Allegro layer contains on tensor product update and arbitrarily many layers of scalar neural networks in the latent, as determined by the hyperparameters discussed above. |
Beta Was this translation helpful? Give feedback.
-
Hi @apoletayev, to add to this, make sure to set a 3-hidden-layer MLP for |
Beta Was this translation helpful? Give feedback.
Hi @apoletayev ,
Thanks for your interest in our code!
Almost---
env_embed_multiplicity
is the size of the features in the tensor track, while the various MLP options set the feature size in the scalar track. In an upcoming update this will be named in a much clearer way...No constraints.
num_layers
is entirely independent of the width of the scalar features in those layers. In general, the*_mlp_latent_dimensions
options specify …