python系列23:张量操作库einops
Posted IE06
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python系列23:张量操作库einops相关的知识,希望对你有一定的参考价值。
1. 简介
非常方便的张量转换库,支持numpy, pytorch, tensorflow, jax等
主要有三个函数:rearrange, reduce, repeat。
首先是基本模块,所有的功能都长这样:
y = rearrange(x, 'b c h w -> b (c h w)')
括号在->前面,表示这个维度的数据进行均等拆分;在->后面时,表示这个维度的数据进行堆叠合并。
2. 功能
2.1 rearrange
最基本的功能莫过于“更换轴”,例如下图就是更换长与宽
y = rearrange(x, 'h w c -> w h c')
从
变为
接下来是拼接与裁剪。括号在前面是裁剪,放在后面是拼接。
注意括号里面的顺序。前面的表示整体堆叠,后面的表示每个堆叠块里面的连续像素个数。看下面这个例子:
还有这个例子,显示分成3块,每块分别填充e,i,n;接下来每块再填充o,p,s,因此总的来说是eoipns
2.2 reduce
顾名思义,消除某一个维度:
2.3 repeat
括号的规则和rearrange一致:
以上是关于python系列23:张量操作库einops的主要内容,如果未能解决你的问题,请参考以下文章
[TensorFlow系列-16]:TensorFlow基础 - 张量的操作 - 变形
[TensorFlow系列-15]:TensorFlow基础 - 张量的操作 - 拆分与分割