Spherical CNNs
Equivariant CNNs for the sphere and SO(3) implemented in PyTorch
Overview
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.
Dependencies
- PyTorch: http://pytorch.org/
- cupy: https://github.com/cupy/cupy
- lie_learn: https://github.com/AMLab-Amsterdam/lie_learn
- pynvrtc: https://github.com/NVIDIA/pynvrtc
Installation
To install, run
$ python setup.py install
Structure
- 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
Usage
Please have a look at the examples.
Please cite [1] in your work when using this library in your experiments.
Feedback
For questions and comments, feel free to contact us: taco.cohen (gmail), geiger.mario (gmail), jonas (argmin.xyz).
License
MIT
References
[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.