E(3) Equivariant Neural Network Tutorial
‼ This tutorial page is for e3nn verisons < 0.2. Please see the e3nn User Guide for more up to date examples.
For original tutorial page click here.
(Recommended Reading // Code // Slides // Citing // Feedback)
Tutorials by Tess E. Smidt
(with additional contributions by Mario Geiger and Josh Rackers)
Tess gives a special thanks to Mario Geiger, Ben Miller, Kostiantyn Lapchevskyi for all they do for the e3nn
repo and them, Daniel Murnane, and Sean Lubner for many conversations that lead to the generation of the tutorial notebooks.
Recommended Reading
- Cormorant: Covariant Molecular Neural Networks
- Brandon Anderson, Truong-Son Hy, Risi Kondor
- 3D Steerable CNNs: Learning Rotationally Equivariant Features in Volumetric Data
- Maurice Weiler, Mario Geiger, Max Welling, Wouter Boomsma, Taco Cohen
- Tensor field networks: Rotation- and translation-equivariant neural networks for 3D point clouds
- Nathaniel Thomas, Tess Smidt, Steven Kearnes, Lusann Yang, Li Li, Kai Kohlhoff, Patrick Riley
Code
For code examples, we will be using the e3nn
repository. Installation instructions can be found here. To test your installation of e3nn
, we recommend running the following code example.
To follow along during the tutorial, we recommend you clone the tutorial repository in addition to installing e3nn
.
git clone git@github.com:blondegeek/e3nn_tutorial.git
Tutorial notebooks
- Data types: Going between geometric tensors in Cartesian and spherical harmonic bases and representation lists (
Rs
) ine3nn
- Operations on Spherical Tensors: Visualization of spherical tensor addition and products
- Simple Tasks and Symmetry: Using equivariant networks can have unintuitive consequences, we use 3 simple tasks to illustrate how network outputs must have equal or higher symmetry than inputs.
- Nuts and Bolts of
e3nn
: A step by step walkthrough of how to set up a convolution and what is going on with all thosepartial
s.- ( notebook )
- Plot with radial functions: Now you can plot angular and radial Fourier transforms of geometry
- NEW! Creating neighbor lists for molecules and crystals using
e3nn.point.data_helpers
.- ( notebook )
Why notebook AND html?
For the notebooks that use plotly
the notebooks are distributed without cells executed because the plots are large (because Tess made them too high-resolution… oops.). If you download the HTML verison, you can interact with the plots without needing to execute the code.
Citing
If you find these tutorials helpful for your research, please consider citing us!
The DOI for these tutorials is:
Cite this tutorial with the following bibtex
:
@software{e3nn_tutorial_2020_3724982,
author = {Tess Smidt and
Mario Geiger and
Josh Rackers},
title = {github.com/blondegeek/e3nn_tutorial},
month = mar,
year = 2020,
publisher = {Zenodo},
version = {0.1},
doi = {10.5281/zenodo.3724982},
url = {https://doi.org/10.5281/zenodo.3724982}
}
Cite e3nn
with the following bibtex
:
@software{e3nn_2020_3723557,
author = {Mario Geiger and
Tess Smidt and
Benjamin K. Miller and
Wouter Boomsma and
Kostiantyn Lapchevskyi and
Maurice Weiler and
Michał Tyszkiewicz and
Jes Frellsen},
title = {github.com/e3nn/e3nn},
month = mar,
year = 2020,
publisher = {Zenodo},
version = {v0.3-alpha},
doi = {10.5281/zenodo.3723557},
url = {https://doi.org/10.5281/zenodo.3723557}
}
Got feedback on the code tutorials?
Tess wants to hear all about it, so please, please, please write Tess an email at tsmidt@lbl.gov
or blondegeek@gmail.com
! The goal is to make these notebooks maximally useful to others.
Is there a tutorial you’d love to see? Is there a tutorial you’d like to contribute? Add an issue or make a pull request!