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.6.0.tar.gz (438.7 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.6.0-py3-none-any.whl (450.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for e3nn-0.6.0.tar.gz
Algorithm Hash digest
SHA256 5c2b414e9527aad27d755ae9546596e3f7706f45a21dae71c7deedb6c048e4de
MD5 6102c67825ab927d222aa44fd7a7977d
BLAKE2b-256 b4fc0e199f2c8adf0119b0de336099fb429f17e8aa302cd4e316e9d5c5310ae8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: e3nn-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 450.7 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.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 24243cf77578f1872a5240a956563ba873d3de0c73459ac7dc3d09061c513dc3
MD5 fbcf11f6b9329091bf3c14857f893e3f
BLAKE2b-256 1faa35de114ddcd91183b724e64198e6eb760ad868de7eac2365301f891e9429

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