einops 通过维度名称标注实现张量操作,代码即文档,替代 reshape、transpose、squeeze 等组合调用。
核心优势
| 优势 | 说明 |
|---|---|
| 可读性强 | rearrange(x, 'b c h w -> b h w c') 即文档 |
| 可靠性高 | 自动检查维度一致性 |
| 统一接口 | 替代 reshape/transpose/squeeze/stack |
| 多框架支持 | NumPy、PyTorch、TensorFlow、JAX |
安装
| |
rearrange:重排维度
| |
reduce:聚合维度
| |
repeat:重复张量
| |
模式语法
| 语法 | 说明 |
|---|---|
| 空格分隔 | b c h w 表示四个维度 |
() | 组合维度,(h w) 展平为一个维度 |
| 分解 | (h h1 h2) + h1=2 参数 |
... | 任意数量维度 |
| |
实战:ViT 补丁嵌入
| |
函数对照
| 函数 | 功能 | 替代操作 |
|---|---|---|
rearrange | 重塑、转置、展平 | reshape + transpose + flatten |
reduce | 聚合 | mean/sum/max + reshape |
repeat | 重复 | repeat/tile/expand |
张芷铭的个人博客
Comments