-
Notifications
You must be signed in to change notification settings - Fork 47
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
Batched equivariant maps basis expansion (?) #76
Comments
hi @Danfoa The single-block basis expansion and sampler classes could be used for that. The external interface of the library (via the conv layers) does not directly support this, though. For instance, do you need to compute a number of convolution kernels for an RdConv or do you want to run multiple RdPointConv in parallel? Or are you only interested in LinearLayers? Best, |
This sounds amazing thanks for the help!. Let me describe my application case. TLDR: I want to construct multiple equivariant linear maps
More details: I am learning equivariant dynamical systems with transition Operators. The nice thing about this approach is that if you find the appropriate non-linear change of coordinates |
Hi @Danfoa That sounds like a really cool application! So, if you know in advance the size of I can make something a bit more flexible to achieve exactly what you want by removing this assert and just use the last dimension of |
I can certainly try @Gabri95,
I know the batch dimension, but I am a bit insecure about how to interact with the
I will give it a try. I think I already see the problem. It should not be difficult. |
Hi @Gabri95,
Do you see any easy way to enable a batched basis expansion of equivariant maps? What do I mean...
The process of construction of a linear equivariant map
T
from an array ofw=weights
(of the same dimension as the dimension of the basis ofT
) seems to be tailored for a single weight vector and a single resultant equivariant linear map. This is perfectly suitable for building the basis of linear layers.However, it is not suitable for parametrically building several equivariant linear maps from a batched collection of weights
(batch, dim(w))
, resulting inbatch
equivariant linear operators. I tried my best to understand and devise a way to do this, but with the current implementation, it seems rather tricky.When using the EMLP library, this was possible by finding the nullspace projector matrix Q [nxn, basis_dim], which we can use to project several weight vectors
T =reshape(Q w)
to their corresponding equiv linear matrices. This process had an immense memory complexity (because of thenxn
: n being the dimension of theT
, assuming squaredT
). I understand your approach is elegantly avoiding this memory complexity problem. Do you think of a way of making a batch version of your basis expansion?The text was updated successfully, but these errors were encountered: