Einops was created three years ago, and never hit big ML news. However, little by little and step by step it sneaked into every major AI lab.
This all happened by word of mouth and by sharing code snippets:
Einops simplifies and clarifies array/tensor manipulation. 👍
You really have to try it out, you'll love it: https://github.com/arogozhnikov/einops
Plus it supports NumPy, TensorFlow, PyTorch, and more.
author of "Hands-On Machine Learning with Scikit-Learn and TensorFlow."
Former PM of YouTube video classification. (ref)
This is your daily reminder to never trust pytorch's native reshape/view.
Always use einops!
(Just spend 1 h debugging code and it turned out tensor.view was shuffling the tensor in a weird way)
Tom Lieberum, University of Amsterdam (ref)
TIL einops can be faster than raw PyTorch 🤯
Zach Mueller, Novetta, author of "walk with fastai" (ref)
einops are also a joy to work with!
Norman Casagrande, Deepmind (ref)
— And btw I estimate that AI research suffers globally from a 5% loss of productivity because einops are not included in @PyTorch by default.
— Might be true for research, but not likely to be true for engineering. I don't think a lot of people in the industry use PyTorch directly [...]
— That’s why it’s 5% and not 30%
After a while, it feels like einsum+einops is all you need ;) [...]
Tim Rocktäschel, Facebook AI Research (ref)
Yes, I am also using einops in that snippet! It's great!
I wished I knew about it from the start when it was created
Tim Dettmers, PhD Student at UoW and visiting researcher at Facebook AI (ref)
A little late to the party, but einops (https://github.com/arogozhnikov/einops) is a massive improvement to deep learning code readability. I love this!
Daniel Havir, Apple (ref)
Comment: some of 'late to the party' tweets are 2 years old now. You can never be late to this party.
I recently discovered the beauty of torch.einsum and einops.rearrange
and at this point I'm confused why I even bothered with other tensor operations in the first place.
Robin M. Schmidt, AI/ML Resident at Apple (ref)
I end up using einops for ridiculously simple things,
simply to be nice to my future self (because the code takes so little effort to read).
Nasim Rahaman, MILA (ref)
I love Einops for this kind of stuff, it makes code very readable,
even if you are just doing a simple squeeze or expand_dims. [...]
Cristian Garcia, ML Engineer @quansightai, (ref)
i might be late to the party, but einsum and the einops package are unbelievably useful
Samson Koelle, Stat PhD candidate at UoW, (ref)
I really recommend einops for tensor shape manipulation
Alex Mordvintsev, DeepDream creator, (ref)
The einops Python package is worth checking out: it provides a powerful declarative interface for manipulating and reshaping multi-dimensional arrays https://github.com/arogozhnikov/einops
Google Research, core contributor to Altair, AstroML, scikit-learn, etc. (ref)
I can't believe after this many years of programming with NumPy/PyTorch/TensorFlow, I didn't know about 𝚎𝚒𝚗𝚜𝚞𝚖. [...]
— Arash Vahdat
They smell like regexp to me -- concise, but I know it is going to take effort to understand or modify them in the future.
— John Carmack
I have a much easier time to read einsum than any equivalent combinations of matmul, reshape, broadcasting... you name it. Regexps are ad-hoc, subtle and cryptic.
Einstein summation is uniform, succinct with simple, clear semantics.
Ein sum to rule them all ;)
— Christian Szegedy
The einops library, in particular, is magical. Best thing since baked bread and brewed beer.