Skip to content

Releases: arogozhnikov/einops

v0.8.2: full MLX backend, rely on torch.compile, set python 3.9 as minimum

26 Jan 04:12
8e911db

Choose a tag to compare

  • torch.compile: previously we relied on registration of einops in torch.compile. This registration was called by torch. Now with torch >= 2.8 torch.compile engine can compile einops operations without additional hints/registrations.
  • recommended backend for MLX is still einops.array_api.<operation>, but since community asked multiple times for support of einops.einsum, there is now MLX backend in einops, so einops.<operation> would also work with MLX.
  • minor improvements to docs, and mention of several related projects.

What's Changed

New Contributors

Full Changelog: v0.8.1...v0.8.2

v0.8.1 Multiple improvements

09 Feb 03:16
ad2c8d6

Choose a tag to compare

What's Changed

TLDR:

  • ellipsis is added to EinMix
  • tests moved into the package
  • devcontainer provided
  • added backend for pyTensor
  • niceties: citation, docs, fixed broken links
  • this did not require any changes in einops, but array API is supported by more libs these days, and einops can operate on them

PRs:

New Contributors

Full Changelog: v0.8.0...v0.8.1

v0.8.0: tinygrad, small fixes and updates

28 Apr 04:07

Choose a tag to compare

TLDR

  • tinygrad backend added
  • resolve warning in py3.11 related to docstring
  • remove graph break for unpack
  • breaking TF layers were updated to follow new instructions, new layers compatible with TF 2.16, and not compatible with old TF (certainly does not work with TF2.13)

What's Changed

New Contributors

Full Changelog: v0.7.0...v0.8.0

V0.7.0: torch.compile, preserve axis identity, array api

01 Oct 01:13

Choose a tag to compare

Major changes:

  • torch.compile just works, registration of operations happens automatically
  • JAX's distributed arrays can use ellipses, and in general ellipsis processing now preserves axis identity. This involved changing internal gears of einops.
  • Array API: einops operations can be used with any framework that follows the standard (see einops.array_api)
  • Python 3.7 is dead. Good bye, you were great at the time
  • Gluon is dropped as previously announced
  • reduce/repeat/rearrange all accept lists now

PRs list

Full Changelog: v0.6.1...v0.7.0

V0.7.0rc2: allow dynamic shapes in torch.compile

14 Aug 05:41
bc89539

Choose a tag to compare

What's Changed

Full Changelog: v0.7.0rc1...v0.7.0rc2

V0.7.0rc1: torch.compile, preserve axis identity, array api

08 Jul 02:54
f656128

Choose a tag to compare

Major changes:

  • torch.compile just works, registration of operations happens automatically
  • JAX's distributed arrays can use ellipses, and in general ellipsis processing now preserves axis identity. This involved changing internal gears of einops.
  • Array API: einops operations can be used with any framework that follows the standard (see einops.array_api)
  • Python 3.7 is dead. Good bye, you were great at the time
  • Gluon is dropped as previously announced
  • Reduce/repeat/rearrange all accept lists now

What's Changed

Full Changelog: v0.6.1...v0.7.0rc1

V0.6.2rc0: drop python 3.7 + preserve axis identity

05 Jul 08:17

Choose a tag to compare

pre-release is published to allow public testing of new caching logic (pattern analysis is now dependent on input dimensionality to preserve axis identity).

What's Changed

Full Changelog: v0.6.1...v0.6.2rc0

V0.6.1: support paddle, support pytorch.compile

19 Apr 04:13

Choose a tag to compare

  • einops layers perfectly interplay with torch.compile
  • einops operations needs registration: run einops._torch_specific.allow_ops_in_compiled_graph() before torch.compile
  • paddle is now supported (thanks to @zhouwei25)
  • as previously announced, support of mxnet is dropped

What's Changed

New Contributors

  • @zhouwei25 made their first contribution in #242

Full Changelog: v0.6.0...v0.6.1

V0.6.0: pack and unpack

09 Nov 20:32
d6f7910

Choose a tag to compare

What's Changed

New Contributors

Announcement

Sunsetting experimental mxnet support: no demand and package is outdated, with numerous deprecations and poor support of corner cases. 0.6.0 will be the last release with mxnet backend.

Full Changelog: v0.5.0...v0.6.0

Einops v0.5.0: einsum + support of flax and oneflow.

03 Oct 06:38

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.4.1...v0.5.0