Counting 2,784 Big Data & Machine Learning Frameworks, Toolsets, and Examples...
Suggestion? Feedback? Tweet @stkim1

Last Commit
May. 24, 2018
Sep. 23, 2017

Spherical CNNs

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 [1]. Equivariant networks for the plane are available here.


(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 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 [1] 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 (




[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.