e3nn
E(3) is the Euclidean group in dimension 3. That is the group of rotations, translations and mirror.
e3nn is a pytorch library that aims to create E(3) equivariant neural networks.
Example
from functools import partial
import torch
from e3nn.non_linearities.rescaled_act import swish
from e3nn.radial import GaussianRadialModel
from e3nn.kernel import Kernel
from e3nn.point.operations import Convolution
from e3nn.non_linearities.norm import Norm
from e3nn import rs
# Define the input and output representations
Rs_in = [(1, 0), (2, 1)] # Input = One scalar plus two vectors
Rs_out = [(1, 1)] # Output = One single vector
# Radial model: R+ -> R^d
RadialModel = partial(GaussianRadialModel, max_radius=3.0, number_of_basis=3, h=100, L=1, act=swish)
# kernel: composed on a radial part that contains the learned parameters
# and an angular part given by the spherical hamonics and the Clebsch-Gordan coefficients
K = partial(Kernel, RadialModel=RadialModel, normalization='norm')
# Use the kernel to define a convolution operation
C = partial(Convolution, K)
# Create the convolution module
conv = C(Rs_in, Rs_out)
# Module to compute the norm of each irreducible component
norm = Norm(Rs_out, normalization='norm')
n = 5 # number of input points
features = rs.randn(1, n, Rs_in, normalization='norm', requires_grad=True)
in_geometry = torch.randn(1, n, 3)
out_geometry = torch.zeros(1, 1, 3) # One point at the origin
norm(conv(features, in_geometry, out_geometry)).backward()
print(features)
print(features.grad)
Hierarchy
e3nncontains the librarye3nn/o3.pyO(3) irreducible representationse3nn/rsh.pyreal spherical harmonicse3nn/rs.pygeometrical tensor representationse3nn/imagecontains voxels linear operationse3nn/pointcontains points linear operationse3nn/non_linearitiesnon linearities operations
examplessimple scripts and experiments
Installation
pip install git+https://github.com/e3nn/e3nn
To get the CUDA kernels read the instructions in INSTALL.md.
Citing
@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}
}
Metadata
Release files for e3nn 0.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| e3nn-0.0.0.tar.gz | 607.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| e3nn-0.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / e3nn-0.0.0.tar.gz
| Download URL | e3nn-0.0.0.tar.gz |
|---|---|
| Size | 607.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f86909a2fdeee807024791258de13e7e8a8411fb0d489cc8f5519b3483aaea17
|
|
BLAKE2b-256 checksum How to use checksums |
0d002fce38a34891b8ce5a95905b8cac955bc168e7d7cf4d57a1456a5b29964b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3
|
Release files / e3nn-0.0.0-py3-none-any.whl
| Download URL | e3nn-0.0.0-py3-none-any.whl |
|---|---|
| Size | 701.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0a84b301f065ad371d608ce71d7ffde8bfdee7df9d3d3a532fa858f03b8d7e93
|
|
BLAKE2b-256 checksum How to use checksums |
ed3441ec81a75d116c5ccd327a8dade0f3fe114b78c6841001fcf030cd1b901f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3
|
Security for e3nn 0.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.