Skip to main content

Equivariant convolutional neural networks for the group E(3) of 3 dimensional rotations, translations, and mirrors.

Project description

Euclidean neural networks

Coverage Status DOI

Documentation | Code | CHANGELOG | Colab

The aim of this library is to help the development of E(3) equivariant neural networks. It contains fundamental mathematical operations such as tensor products and spherical harmonics.

import torch
from e3nn import o3

# Create a random array made of scalar (0e) and a vector (1o)
irreps_in = o3.Irreps("0e + 1o")
x = irreps_in.randn(-1)

# Apply a linear layer
irreps_out = o3.Irreps("2x0e + 2x1o")
linear = o3.Linear(irreps_in=irreps_in, irreps_out=irreps_out)
y = linear(x)

# Compute a tensor product with itself
tp = o3.FullTensorProduct(irreps_in1=irreps_in, irreps_in2=irreps_in)
z = tp(x, x)

# Optionally compile the tensor product
tp_pt2 = torch.compile(tp, fullgraph=True)
z_pt2 = tp_pt2(x, x) # Warning: First few calls might be slow due to compilation
torch.testing.assert_close(z, z_pt2)

Installation

Important: install pytorch and only then run the command

pip install --upgrade pip
pip install --upgrade e3nn

For details and optional dependencies, see INSTALL.md

Breaking changes

e3nn is under development. It is recommended to install using pip. The main branch is considered as unstable. The second version number is incremented every time a breaking change is made to the code.

0.(increment when backwards incompatible release).(increment for backwards compatible release)

Help

We are happy to help! The best way to get help on e3nn is to submit a Question or Bug Report.

Want to get involved? Great!

If you want to get involved in and contribute to the development, improvement, and application of e3nn, introduce yourself in the discussions.

Code of conduct

Our community abides by the Contributor Covenant Code of Conduct.

Citing

If you use e3nn in your research, please cite the following papers:

Euclidean Neural Networks:

  • N. Thomas et al., "Tensor field networks: Rotation- and translation-equivariant neural networks for 3D point clouds" (2018). arXiv:1802.08219
  • M. Weiler et al., "3D Steerable CNNs: Learning Rotationally Equivariant Features in Volumetric Data" (2018). arXiv:1807.02547
  • R. Kondor et al., "Clebsch-Gordan Nets: a Fully Fourier Space Spherical Convolutional Neural Network" (2018). arXiv:1806.09231

e3nn:

  • M. Geiger and T. Smidt, "e3nn: Euclidean Neural Networks" (2022). arXiv:2207.09453
  • M. Geiger et al., "Euclidean neural networks: e3nn" (2022). Zenodo

For BibTeX entries, please refer to the CITATION.bib file in this repository.

Copyright

Euclidean neural networks (e3nn) Copyright (c) 2020, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy), Ecole Polytechnique Federale de Lausanne (EPFL), Free University of Berlin and Kostiantyn Lapchevskyi. All rights reserved.

If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Intellectual Property Office at IPO@lbl.gov.

NOTICE. This Software was developed under funding from the U.S. Department of Energy and the U.S. Government consequently retains certain rights. As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, distribute copies to the public, prepare derivative works, and perform publicly and display publicly, and to permit others to do so.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

e3nn-0.5.9.tar.gz (438.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

e3nn-0.5.9-py3-none-any.whl (450.4 kB view details)

Uploaded Python 3

File details

Details for the file e3nn-0.5.9.tar.gz.

File metadata

  • Download URL: e3nn-0.5.9.tar.gz
  • Upload date:
  • Size: 438.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for e3nn-0.5.9.tar.gz
Algorithm Hash digest
SHA256 1902e1f283d723748ce9e86b91573da4436ac110f40784851df890f75da86663
MD5 fb60882ac5e84ea881c11ec5d4722308
BLAKE2b-256 d178e16589ec1fd97019b914d806e94631eba476e82590e0675bd0402fa9ce08

See more details on using hashes here.

File details

Details for the file e3nn-0.5.9-py3-none-any.whl.

File metadata

  • Download URL: e3nn-0.5.9-py3-none-any.whl
  • Upload date:
  • Size: 450.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for e3nn-0.5.9-py3-none-any.whl
Algorithm Hash digest
SHA256 3af2fe83e8d06d1b28c2f49860afff0e74daed94913bd39c340ac6ffb379df1a
MD5 9b541c9593effbca079651eeed7d22cb
BLAKE2b-256 936243c19edcf04b0efa0bc6b0059c6e34bd404d4ce9d249c160297939d670af

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page