NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #761 most downloaded on PyPI
A new flavour of deep learning operations
Last release 3 months ago
05 Jul 2026
Release timing varies
gaps range from 5 weeks to 12 months
Most releases are documented
notes for 10 of 14 stable releases
1 version withdrawn
withdrawn after publishing
8 years old
18 releases · first in 2018
upgrade python versions, stop using/supporting python 3.9, set version to 0.9.0dev by @arogozhnikov in https://github.com/arogozhnikov/einops/pull/396
einops.ReductionCallable type by @jorenham in https://github.com/arogozhnikov/einops/pull/405TypeAlias (PEP 613) by @jorenham in https://github.com/arogozhnikov/einops/pull/411einops.parsing and add missing annotations by @jorenham in https://github.com/arogozhnikov/einops/pull/417einops.layers.oneflow by @jorenham in https://github.com/arogozhnikov/einops/pull/421einops.layers.paddle and add missing annotations by @jorenham in https://github.com/arogozhnikov/einops/pull/422einops.layers.flax and add missing annotations by @jorenham in https://github.com/arogozhnikov/einops/pull/420einops.layers.torch and add missing annotations by @jorenham in https://github.com/arogozhnikov/einops/pull/425array_api.asnumpy by @jorenham in https://github.com/arogozhnikov/einops/pull/418einops.layers.__init__ and add missing annotations by @jorenham in https://github.com/arogozhnikov/einops/pull/419hatch run check by @arogozhnikov in https://github.com/arogozhnikov/einops/pull/426Full Changelog: https://github.com/arogozhnikov/einops/compare/v0.8.2...v0.9.0dev
One column per quarter.
einops.ReductionCallable type by @jorenham in #405TypeAlias (PEP 613) by @jorenham in #411einops.parsing and add missing annotations by @jorenham in #417einops.layers.oneflow by @jorenham in #421einops.layers.paddle and add missing annotations by @jorenham in #422einops.layers.flax and add missing annotations by @jorenham in #420einops.layers.torch and add missing annotations by @jorenham in #425array_api.asnumpy by @jorenham in #418einops.layers.__init__ and add missing annotations by @jorenham in #419hatch run check by @arogozhnikov in #426Full Changelog: v0.8.2...v0.9.0dev
torch.compile: previously we relied on registration of einops in torch.compile. This registration was called by torch. Now with torch >= 2.8 torch.com
torch.compile engine can compile einops operations without additional hints/registrations.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.allow_in_graph if torch >= 2.8 by @guilhermeleobas in https://github.com/arogozhnikov/einops/pull/394Full Changelog: https://github.com/arogozhnikov/einops/compare/v0.8.1...v0.8.2
torch.compile engine can compile einops operations without additional hints/registrations.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.allow_in_graph if torch >= 2.8 by @guilhermeleobas in #394Full Changelog: v0.8.1...v0.8.2
niceties: citation, docs, fixed broken links
TLDR:
master -> main migration by @VladKha in https://github.com/arogozhnikov/einops/pull/349Full Changelog: https://github.com/arogozhnikov/einops/compare/v0.8.0...v0.8.1
TLDR:
master -> main migration by @VladKha in #349Full Changelog: v0.8.0...v0.8.1
resolve warning in py3.11 related to docstring
Full Changelog: https://github.com/arogozhnikov/einops/compare/v0.7.0...v0.8.0
Full Changelog: v0.7.0...v0.8.0
torch.compile just works, registration of operations happens automatically
Major changes:
torch.compile just works, registration of operations happens automaticallyeinops operations can be used with any framework that follows the standard (see einops.array_api)Full Changelog: https://github.com/arogozhnikov/einops/compare/v0.6.1...v0.7.0
Major changes:
torch.compile just works, registration of operations happens automaticallyeinops operations can be used with any framework that follows the standard (see einops.array_api)Full Changelog: v0.6.1...v0.7.0
cover dynamic shapes in torch.compile, introduce fallback if shape was not cacheable by @arogozhnikov in https://github.com/arogozhnikov/einops/pull/2
Full Changelog: https://github.com/arogozhnikov/einops/compare/v0.7.0rc1...v0.7.0rc2
Full Changelog: v0.7.0rc1...v0.7.0rc2
torch.compile just works, registration of operations happens automatically
Major changes:
torch.compile just works, registration of operations happens automaticallyeinops operations can be used with any framework that follows the standard (see einops.array_api)Full Changelog: https://github.com/arogozhnikov/einops/compare/v0.6.1...v0.7.0rc1
Major changes:
torch.compile just works, registration of operations happens automaticallyeinops operations can be used with any framework that follows the standard (see einops.array_api)Full Changelog: v0.6.1...v0.7.0rc1
pre-release is published to allow public testing of new caching logic (pattern analysis is now dependent on input dimensionality to preserve axis iden
pre-release is published to allow public testing of new caching logic (pattern analysis is now dependent on input dimensionality to preserve axis identity).
Full Changelog: https://github.com/arogozhnikov/einops/compare/v0.6.1...v0.6.2rc0
pre-release is published to allow public testing of new caching logic (pattern analysis is now dependent on input dimensionality to preserve axis identity).
Full Changelog: v0.6.1...v0.6.2rc0
einops layers perfectly interplay with torch.compile
einops._torch_specific.allow_ops_in_compiled_graph() before torch.compileallow_ops_in_compiled_graph to support torch.compile by @arogozhnikov in https://github.com/arogozhnikov/einops/pull/251Full Changelog: https://github.com/arogozhnikov/einops/compare/v0.6.0...v0.6.1
einops._torch_specific.allow_ops_in_compiled_graph() before torch.compileallow_ops_in_compiled_graph to support torch.compile by @arogozhnikov in #251Full Changelog: v0.6.0...v0.6.1
Sunsetting experimental mxnet support: no demand and package is outdated, with numerous deprecations and poor support of corner cases. 0.6.0 will be t…
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: https://github.com/arogozhnikov/einops/compare/v0.5.0...v0.6.0
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
Create einsum operation by @MilesCranmer in https://github.com/arogozhnikov/einops/pull/197
Full Changelog: https://github.com/arogozhnikov/einops/compare/v0.4.1...v0.5.0
fix numpy dependency problem by @lucidrains in https://github.com/arogozhnikov/einops/pull/176
Full Changelog: https://github.com/arogozhnikov/einops/compare/v0.4.0...v0.4.1
torch.jit.script is supported (in addition to previous torch.jit.trace)
Full Changelog: https://github.com/arogozhnikov/einops/compare/v0.3.2...v0.4.0
documentation and domain (#75, #76, #77, #79, #81), thanks to @cgarciae
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →