Equivariant CNNs for the sphere and SO(3) implemented in PyTorch
This library contains a PyTorch implementation of the rotation equivariant CNNs for spherical signals (e.g. omnidirectional images, signals on the globe) as presented in . Equivariant networks for the plane are available here.
- PyTorch: http://pytorch.org/ (>= 0.4.0)
- cupy: https://github.com/cupy/cupy
- lie_learn: https://github.com/AMLab-Amsterdam/lie_learn
- pynvrtc: https://github.com/NVIDIA/pynvrtc
(commands to install all the dependencies on a new conda environment)
conda create --name cuda9 python=3.6 conda activate cuda9 # s2cnn deps conda install pytorch torchvision cuda90 -c pytorch conda install -c anaconda cupy pip install pynvrtc # lie_learn deps conda install -c anaconda cython conda install -c anaconda requests # shrec17 example dep conda install -c anaconda scipy conda install -c conda-forge rtree shapely conda install -c conda-forge pyembree pip install "trimesh[easy]"
To install, run
$ python setup.py install
- nn: PyTorch nn.Modules for the S^2 and SO(3) conv layers
- ops: Low-level operations used for computing the G-FFT
- examples: Example code for using the library within a PyTorch project
Please have a look at the examples.
Please cite  in your work when using this library in your experiments.
For questions and comments, feel free to contact us: taco.cohen (gmail), geiger.mario (gmail), jonas (argmin.xyz).
 Taco S. Cohen, Mario Geiger, Jonas Köhler, Max Welling, Spherical CNNs. International Conference on Learning Representations (ICLR), 2018.
 Taco S. Cohen, Mario Geiger, Jonas Köhler, Max Welling, Convolutional Networks for Spherical Signals. ICML Workshop on Principled Approaches to Deep Learning, 2017.
 Taco S. Cohen, Mario Geiger, Maurice Weiler, Intertwiners between Induced Representations (with applications to the theory of equivariant neural networks), ArXiv preprint 1803.10743, 2018.