pytorch中的permute()函数的原理

permute的中文含义是:置换
这个就已经解释了一半了。
他的功能就是把一个多维张量的维度进行调换。
对于一个2维张量来说,例如:
a=torch.rand(2,3).
那么代码a.permute(1,0)就相当于a.T

对于一个三维张量来说,例如:
a=torch.rand(2,3,4)
代码a.permute(2,0,1)把最初的2,3,4维度,给调整成了4,2,3维度,并且保持维度内的数值关系不变。

permute之前a是这样的:
tensor([[[0.8908, 0.6429, 0.4776, 0.7659],
[0.3943, 0.0208, 0.3309, 0.6632],
[0.6630, 0.4108, 0.0426, 0.2058]],
[[0.3706, 0.2213, 0.6738, 0.2757],
[0.1788, 0.2192, 0.6360, 0.4071],
[0.1586, 0.4145, 0.8038, 0.5163]]])
permute之后a是这样的:
tensor([[[0.8908, 0.3943, 0.6630],
[0.3706, 0.1788, 0.1586]],
[[0.6429, 0.0208, 0.4108],
[0.2213, 0.2192, 0.4145]],
[[0.4776, 0.3309, 0.0426],
[0.6738, 0.6360, 0.8038]],
[[0.7659, 0.6632, 0.2058],
[0.2757, 0.4071, 0.5163]]])

仔细观察数值位置的变化,就会理解了。

posted @   Cooker2008  阅读(256)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示