E3nn

Latest version: v0.5.5

Safety actively analyzes 714815 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 6

0.2.8

Added
- `squared` option to `o3.Norm`
- `e3nn.nn.models.v2104.voxel_convolution.Convolution` made to be resolution agnostic
- `TensorProduct.visualize` keyword argument `aspect_ratio`

Changed
- `ReducedTensorProducts` is a (scriptable) `torch.nn.Module`
- e3nn now requires the latest stable PyTorch, >=1.8.1
- `TensorProduct.visualize`: color of paths based on `w.pow(2).mean()` instead of `w.sum().sign() * w.abs().sum()`

Fixed
- No more NaN gradients of `o3.Norm`/`nn.NormActivation` at zero when using `epsilon`
- Modules with `compile_mode('trace')` can now be compiled when their dtype and the current default dtype are different
- Fix errors in `ReducedTensorProducts` and add new tests

0.2.7

Added
- `uuu` connection mode in `o3.TensorProduct` now has specialized code

Fixed
- Fixed an issue with `Activation` (used by `Gate`). It was only applying the first activation function provided. `Activation('0e+0e', [act1, act2])` was equivalent to `Activation('2x0e', [act1])`. Solved by removing the `.simplify()` applied to `self.irreps_in`.
- `Gate` will not accept non-scalar `irreps_gates` or `irreps_scalars`

0.2.6

Added
- `e3nn.util.test.random_irreps` convenience function for writing tests

Changed
- `o3.Linear` now has more efficient specialized code

Fixed
- Fixed a problem with temporary files on windows

0.2.5

Added
- Added `e3nn.set_optimization_defaults()` and `e3nn.get_optimization_defaults()`
- Constructors for empty `Irreps`: `Irreps()` and `Irreps("")`
- Additional tests, docs, and refactoring for `Irrep` and `Irreps`.
- Added `TensorProduct.weight_views()` and `TensorProduct.weight_view_for_instruction()`
- Fix Docs for ExtractIr

Changed
- Renamed `o3.TensorProduct` arguments in `irreps_in1`, `irreps_in2` and `irreps_out`
- Renamed `o3.spherical_harmonics` arguement `xyz` into `x`
- Renamed `math.soft_one_hot_linspace` argument `endpoint` into `cutoff`, `cutoff = not endpoint`
- Variances are now provided to `o3.TensorProduct` through explicit `in1_var`, `in2_var`, `out_var` parameters
- Submodules define `__all__`; documentation uses shorter module names for the classes/methods.

Fixed
- Enabling/disabling einsum optimization no longer affects PyTorch RNG state.

Removed
- Variances can no longer be provided to `o3.TensorProduct` in the list-of-tuple format for `irreps_in1`, etc.

0.2.4

Added
- `basis='smooth_finite'` option to `math.soft_one_hot_linspace`
- `math.soft_unit_step` function
- `nn.model.v2103` generic message passing model + examples of networks using it.
- `o3.TensorProduct`: is jit scriptable
- `o3.TensorProduct`: also broadcast the `weight` argument
- simple e3nn models can be saved/loaded with `torch.save()`/`torch.load()`
- JITable `o3.SphericalHarmonics` module version of `o3.spherical_harmonics`
- `in_place` option for `e3nn.util.jit` compilation functions
- New `compile_mode("unsupported")` for modules that do not support TorchScript
- flake8 settings have been added to `setup.cfg` for improved code style
- `TensorProduct.visualize()` can now plot weights
- `basis='bessel'` option to `math.soft_one_hot_linspace`

Changed
- `o3.TensorProduct` now uses `torch.fx` to generate it's code
- e3nn now requires the latest stable PyTorch, >=1.8.0
- in `soft_one_hot_linspace` the argument `base` is renamed into `basis`
- `Irreps.slices()`, do `zip(irreps.slices(), irreps)` to retrieve the old behavior
- `math.soft_one_hot_linspace` very small change in the normalization of `fourier` basis
- `normalize2mom` is now a `torch.nn.Module`
- rename arguments `set_ir_...` into `filter_ir_...`
- Renamed `e3nn.nn.Gate` argument `irreps_nonscalars` to `irreps_gated`
- Renamed `e3nn.o3.TensorProduct` arguments `x1, x2` to `x, y`

Fixed
- `nn.Gate` was crashing when the number of scalars or gates was zero
- `device` edge cases for `Gate` and `SphericalHarmonics`

0.2.3

Added
- Add argument `basis` into `math.soft_one_hot_linspace` that can take values `gaussian`, `cosine` and `fourier`
- `io.SphericalTensor.sum_of_diracs`
- Optional arguments `function(..., device=None, dtype=None)` for many functions
- `e3nn.nn.models.gate_points_2102` using node attributes along the length embedding to feed the radial network
- `Irreps.slices()`
- Module `Extract` (and `ExtractIr`) to extract subsets of irreps tensors
- Recursive TorchScript compiler `e3nn.util.jit`
- TorchScript support for `TensorProduct` and subclasses, `NormActivation`, `Gate`, `FullyConnectedNet`, and `gate_points_2101.Network`

Changed
- rename `io.SphericalTensor.from_geometry_adjusted` into `io.SphericalTensor.with_peaks_at`
- in `ReducedTensorProducts`, `ElementwiseTensorProduct` and `FullTensorProduct`: rename `irreps_out` argument into `set_ir_out` to not confuse it with `o3.Irreps`

Removed
- `io.SphericalTensor.from_geometry_global_rescale`
- `e3nn.math.reduce.reduce_tensor` in favor of `e3nn.o3.ReducedTensorProducts`
- swish, use `torch.nn.functional.silu` instead
- `"cartesian_vectors"` for equivariance testing — since the 0.2.2 Euler angle convention change, L=1 irreps are equivalent
Fixed
- `io.SphericalTensor.from_samples_on_s2` manage batch dimension
- Modules that generate code now clean up their temporary files
- `NormActivation` now works on GPU

Page 4 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.