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 [1]. 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
Please have a look at the examples.
Please cite [1] in your work when using this library in your experiments.
For questions and comments, feel free to contact us: geiger.mario (gmail), taco.cohen (gmail), jonas (argmin.xyz).
MIT
[1] Taco S. Cohen, Mario Geiger, Jonas Köhler, Max Welling, Spherical CNNs. International Conference on Learning Representations (ICLR), 2018.
[2] Taco S. Cohen, Mario Geiger, Jonas Köhler, Max Welling, Convolutional Networks for Spherical Signals. ICML Workshop on Principled Approaches to Deep Learning, 2017.
[3] 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.