二维的情况
先用二维tensor作为例子,方便理解。
permute作用为调换Tensor的维度,参数为调换的维度。例如对于一个二维Tensor来说,调用tensor.permute(1,0)意为将1轴(列轴)与0轴(行轴)调换,相当于进行转置。
In [20]: a Out[20]: tensor([[0, 1, 2], [3, 4, 5]]) In [21]: a.permute(1,0) Out[21]: tensor([[0, 3], [1, 4], [2, 5]])
如果使用view(3,2)或reshape(3,2),得到的tensor并不是转置的效果,而是相当于将原tensor的元素按行取出,然后按行放入到新形状的tensor中。
In [22]: a.reshape(3,2) Out[22]: tensor([[0, 1], [2, 3], [4, 5]]) In [23]: a.view(3,2) Out[23]: tensor([[0, 1], [2, 3], [4, 5]])
高维的情况
一般使用permute的情况都是在更高维的情况下使用,例如对于一个图像batch,其形状为[batch, channel, height, width],我们可以使用tensor.permute(0,3,2,1)得到形状为[batch, width, height, channel]的tensor.
我们构造一个模拟的batch用于演示。
In [25]: a=torch.arange(2*3*2*1).reshape(2,3,2,1) In [26]: a Out[26]: tensor([[[[ 0], # 这是第0张“图片”的第0号通道的2个元素 [ 1]], [[ 2], # 这是第0张“图片”的第1号通道的2个元素 [ 3]], [[ 4], # 这是第0张“图片”的第2号通道的2个元素 [ 5]]], [[[ 6], [ 7]], [[ 8], [ 9]], [[10], [11]]]])
a的形状为[2,3,2,1],这个batch有2张“图片”,每张图片有3个通道,每个通道为2x1,例如第0张图片的第0号通道为[[0], [1]].
In [27]: a.permute(0,3,2,1) Out[27]: tensor([[[[ 0, 2, 4], [ 1, 3, 5]]], [[[ 6, 8, 10], [ 7, 9, 11]]]]) In [28]: a.permute(0,3,2,1).shape Out[28]: torch.Size([2, 1, 2, 3])
形状为[2,3,2,1]的batch执行permute(0,3,2,1)交换维度之后,得到的是[2,1,2,3],即[batch, width, height, channel]
可以理解为,对于一个高维的Tensor执行permute,我们没有改变数据的相对位置,而只是旋转了一下这个(超)立方体。或者也可以说,改变了我们对这个(超)立方体的“观察角度”而已。
补充知识:pytorch: torch.Tensor.view ------ reshape
如下所示:
torch.Tensoe.view(python method, in torch.Tensor)
作用: 将输入的torch.Tensor改变形状(size)并返回.返回的Tensor与输入的Tensor必须有相同的元素,相同的元素数目,但形状可以不一样
即,view起到的作用是reshape,view的参数的是改变后的shape.
示例如下:
> x = torch.randn(4, 4) > x.size() torch.Size([4, 4]) > y = x.view(16) > y.size() torch.Size([16]) > z = x.view(-1, 8) # the size -1 is inferred from other dimensions > z.size() torch.Size([2, 8])
view_as:
tensor_1.view_as(tensor_2):将tensor_1的形状改成与tensor_2一样
以上这篇基于PyTorch的permute和reshape/view的区别介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]