Releases: arogozhnikov/einops
Releases · arogozhnikov/einops
Einops v0.4.0: EinMix and torch.jit.script
Main Changes
- torch.jit.script is supported (in addition to previous torch.jit.trace)
- EinMix (swiss-knife for next-gen MLPs) is added. A much-improved einsum/linear layer is now available.
- einops.repeat in torch does not create copy when possible
Detailed PRs
- Update documentation by @arogozhnikov in #137
- Multiple updates in docs, add Rearrange layer to torch test by @arogozhnikov in #138
- Add support for torch scripting of einops layers by @arogozhnikov in #139
- Introduce EinMix - swiss-knife for next-gen MLPs by @arogozhnikov in #142
- Docs improvements: wording, visual style, EinMix by @arogozhnikov in #143
- Move docs to a separate folder by @arogozhnikov in #144
- Type hinting + add testing for EinMix composition/decomposition by @arogozhnikov in #154
- Reject repeated axes in parse_shape by @dmitriy-serdyuk in #159
- Enable ellipsis in patterns for parse_shape. by @dmitriy-serdyuk in #162
New Contributors
- @dmitriy-serdyuk made their first contribution in #159
Full Changelog: v0.3.2...v0.4.0
Einops v0.3.2: updated documentation and tutorials, keras -> tf.keras
Einops v0.3: repeat + more friendly requirements + ...
- 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 oftf.keras
layers - experimental layer introduced: WeightedEinsum (RFC: #71 )
Jax support + updated testing code
- 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
Initial release (v0.1)
This release introduces einops, as well as its notion.
Initial release API:
Operations (ops)
einops.rearrange
andeinops.reduce
Auxiliary
einops.asnumpy
andeinops.parse_shape
Layers (for chainer, gluon, keras and torch)
Rearrange
andReduce
Supported frameworks:
- numpy
- pytorch
- tensorflow eager
- cupy
- chainer
- gluon
- tensorflow
- mxnet (experimental)
- and keras (experimental)