Comments (3)
Another thing which might be nice is to have a property for each group denoting whether it contains reflections or not.
from escnn.
Hi @LVeefkind
I've included the rotation_order attribute for the cyclic group and for the so(2) group.
Your idea about the list of available grids is nice! I need to think a bit about how to implement it, though.
Indeed, different groups have different kind of grids and some require additional parameters (e.g. SO(3) has a few fixed grids like 'ico', 'cube' or 'tetra' but also some parameterized grids like 'thomson' which requires an additional parameter N
).
I also noticed that certain groups, such as the octahedral and the Directproduct groups do not have the bl_irreps method
This is also something hard to build over general groups, since the concept of "band limitation" implies at least a certain ordering of the irreps, such that we can pick only the irreps below a certain maximum frequency. This makes sense for most rotation groups, but it is not really well defined for all irreps of all groups (e.g. for the last irreps of the icosahedral group or the octahedral group).
Once could also combine two groups via a DirectProduct. (approximatively) The resulting group will have an irrep for each pair of irreps of the two initial groups, i.e. the resulting irreps will have 2 separate frequency indexes. As a result, there is some ambiguity on the choice of the frequency index to use to bandlimit (this is worse when one takes the direct product of more than 2 groups).
Another thing which might be nice is to have a property for each group denoting whether it contains reflections or not.
I think this kind of question is better answered via the GSpace abstraction rather than the Group abstraction, since the concept of reflection only makes sense when we think of the group acting on the Euclidean space.
In this case, for example, if you have an instance gs
of GSpace3D, you can check if gs.fibergroup
contains reflections by looking at gs.sg_id
, which tells us which subgroup of O(3)
the group gs.fibergroup
is.
Check the subgroup table of O(3) here: the subgtroup contains reflections if sg_id[0] == True
or sg_id[0] == "fulltetra"
or sg_id[0] == "cone"
Hope this helps!
Gabriele
from escnn.
Yes that definitely helps, thanks!
from escnn.
Related Issues (20)
- Missing the tetrahedron group (`tetraOnR3` in `escnn.gspaces`?)
- Instance Norm as normalization? HOT 4
- What is the intuition behind conditioning the kernel size on the number of rotations in the example script? HOT 2
- check_equivariance test failed HOT 2
- escnn's conv, BN, relu is not equivariant? HOT 3
- Pretrained models for ResNet in SO(2) and SE(3) HOT 4
- Utility functions to save and load instances of Group and Representations HOT 2
- Missing indexing dimensions in GeometricTensors HOT 2
- Batched equivariant maps basis expansion (?) HOT 4
- Improved invariant feature extraction - Improved group pooling
- Migrate unit tests to pytest? HOT 4
- question about the 3D rotation order and the Fourier transformation matrix
- Information bottlenecks without warnings.
- Add LayerNorm layer HOT 2
- Add Unitary Group HOT 1
- Usage equivariant MLP HOT 4
- Multi-gpu training degrades performance HOT 1
- Can escnn be used to process one-dimensional data? HOT 1
- 【Passive Rotation】 HOT 3
- Planar symmetries with staggered grids HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from escnn.