Einops Versions Save

Flexible and powerful tensor operations for readable and reliable code (for pytorch, jax, TF and others)

v0.3

3 years ago
  • new operation: repeat (includes repeat/tiling logic, copying along a new dimension)
  • anonymous axes (specified by their length not name) are allowed:
grayscale = reduce(image, 'h w 3 -> h w', 'mean')
image_with_identical_channels = repeat(grayscale, 'h w -> h w 3')
  • 1 can be used to refer to all dimensions of length 1
  • reduced restrictions on axes names: almost any python identified can be an axis name now
  • reduction can be provided with callable not string
  • tutorials were slightly updated to include these changes
  • code in kernel undergone refactoring, and now more documented
  • support: keras layers are deprecated in favor of tf.keras layers
  • experimental layer introduced: WeightedEinsum (RFC: #71 )

v0.2

4 years ago
  • experimental support for Jax framework was added
  • testing code was rewritten and updated to work
  • tf2 always worked with einops, but tests had to be updated. So, tests are updated for tf2
  • tf readme, minor additions, comments, etc.

Thanks to contributors

v0.1

5 years ago

This release introduces einops, as well as its notion.

Initial release API: Operations (ops)

  • einops.rearrange and einops.reduce

Auxiliary

  • einops.asnumpy and einops.parse_shape

Layers (for chainer, gluon, keras and torch)

  • Rearrange and Reduce

Supported frameworks:

  • numpy
  • pytorch
  • tensorflow eager
  • cupy
  • chainer
  • gluon
  • tensorflow
  • mxnet (experimental)
  • and keras (experimental)