这是一个关于einops
库的介绍,包含以下主要内容:
- 功能与支持的框架:提供灵活强大的张量操作,支持
numpy
、pytorch
、tensorflow
、jax
等多种框架,还可与支持Python array API standard
的框架配合使用。 - 近期更新:0.8.0 增加
tinygrad
后端等;0.7.0 支持torch.compile
等;10000 次报告表明超 10k 项目使用einops
;添加paddle
后端等。 - 推文:有开发者对
einops
的认可和推荐。 - 内容结构:包含安装、文档、教程、API 微参考、使用原因、支持框架、引用、仓库与讨论等内容。
- 安装:使用
pip install einops
安装。 - 教程:有多个教程展示
einops
的使用,如基础、深度学习、打包解包等,还有相关视频教程。 - API:核心操作有
rearrange
、reduce
、repeat
等,后来添加了pack
和unpack
函数,还提供了einsum
,并为各框架提供了相应的层。 - 命名:以爱因斯坦启发的命名法命名,受
numpy.einsum
启发。 - 使用原因:提供语义信息(便于理解输入输出)、方便检查(可指定维度)、结果确定(避免框架差异)、统一性(统一操作定义)、框架独立行为(在各框架中表现一致)、独立于框架术语(避免混淆)。
- 开发:提供
devcontainer
环境,0.8.1 版开始将测试作为包的一部分分发,可指定要测试的框架。 - 引用:使用特定的
bibtex
记录引用einops
。 - 支持的 Python 版本:适用于 Python 3.9 及以上版本。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。