栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

PYTORCH疑惑系列--permute,view,shape

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PYTORCH疑惑系列--permute,view,shape

在深度学习中经常出现维度转换操作,但维度转换很可能会打乱数据。这次我们设置一些实验去了解原理。

bs = 8
x = torch.tensor([
                [ [1, 2],[3, 4],[5, 6],[7, 8] ],
               [ [9, 10],[11, 12],[13, 14],[15, 16] ],
               [ [17, 18],[19, 20],[21, 22],[23, 24] ],
               [ [25, 26],[27, 28],[29, 30],[31, 32] ]
              ] )
batch_x = torch.cat([(x+i).unsqueeze(0) for i in range(bs)])

我们打印batch_x的shape 和自身可以得到:

现在我们有个需求:将通道维度换算到最后一维 ,现在有几个函数可以使用view, reshape和permute:

  • view:
  • reshape
  • permute
可以看出对于程序来说,reshape和view的效果是相同的。但他们仅仅是按照最后一维展开直接重新构建张量。当在某些特殊的场合时会破坏程序的数据构成。而permute可以按照原定的维度进行维度交换,不会发生这样子的错误。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/499295.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号