e2cnn documentation

Deprecation Warning: check our new escnn library which extends e2cnn to a wider class of equivariance groups.

While we will still provide some support for this older version, this library is deprecated and we plan to slowly abandon it in favour of the newer version escnn. Note that escnn already includes all features of e2cnn and many more. You can find a short summary of the main differences in the new version here .

e2cnn is a Pytorch based library for equivariant deep learning.

Equivariant neural networks guarantee a prespecified transformation behavior of their features under transformations of their input. This package provides functionality for the equivariant processing of planar images. It implements the most general convolutional maps and the most general differential operators which are equivariant under the isometries of the plane, that is, under translations, rotations and reflections.

Package Reference

The library is structured into five subpackages with different high-level features:

  • e2cnn.group implements basic concepts of group and representation theory

  • e2cnn.kernels solves for spaces of equivariant convolution kernels

  • e2cnn.diffops solves for spaces of equivariant differential operators

  • e2cnn.gspaces defines the image plane and its symmetries

  • e2cnn.nn contains equivariant modules to build deep neural networks

Typically, only the high level functionalities provided in e2cnn.gspaces and e2cnn.nn are needed to build an equivariant model.

To get started, we provide an introductory tutorial which introduces the basic functionality of the library. A second tutorial goes through building and training an equivariant model on the rotated MNIST dataset.

Cite Us

The development of this library was part of the work done in our paper . Please, cite us if you use this code in your own work:

@inproceedings{e2cnn,
    title={{General E(2)-Equivariant Steerable CNNs}},
    author={Weiler, Maurice and Cesa, Gabriele},
    booktitle={Conference on Neural Information Processing Systems (NeurIPS)},
    year={2019},
}

The implementation of steerable PDOs in e2cnn.nn and the subpackage e2cnn.diffops are part of the work done in this paper . Please, cite it if you use this code in your own work:

@misc{jenner2021steerable,
    title={Steerable Partial Differential Operators for Equivariant Neural Networks},
    author={Erik Jenner and Maurice Weiler},
    year={2021},
    eprint={2106.10163},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

Indices and tables