python系列23:张量操作库einops

本文介绍了一个支持numpy, pytorch, tensorflow, jax等库的张量转换工具,主要功能包括rearrange(轴变换)、reduce(维度消除)和repeat(元素复制)。rearrange通过括号指定维度的拆分与合并,如'hwc->whc'实现高度和宽度的互换。reduce函数用于消除某一维度,而repeat则根据指定模式重复元素。这些函数为张量操作提供了强大且灵活的支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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一致:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值