网站开发对cpu要求高吗,建设公司企业愿景,asia域名的网站,wordpress 基本模版今天碰到一个代码看起来很简单#xff0c;但是细究原理又感觉好像不太通不太对劲#xff0c;就是多维tensor数据的操作#xff0c;比如#xff1a;y.sum(dim2)#xff0c;乍一看很简单数据相加操作#xff0c;但是仔细一想#xff0c;这里在第3维度的数据到底是横向相加… 今天碰到一个代码看起来很简单但是细究原理又感觉好像不太通不太对劲就是多维tensor数据的操作比如y.sum(dim2)乍一看很简单数据相加操作但是仔细一想这里在第3维度的数据到底是横向相加还是纵向相加带着疑问实验几次就明白了。 首先给个完整的例子
import torchy torch.tensor([[[1, 2, 3],[4, 5, 6]],[[1, 2, 3],[4, 5, 6]],[[1, 2, 3],[4, 5, 6]]])print(y.sum(dim2))这里的y.shape (3, 2, 3)三个维度的数据所以dim可以是02也可以是-1-3。我们每个维度都进行操作一遍就清楚了。
当dim0时相当于有3个二维的向量进行相加结果还是一个二维向量对应位置相加 y.shape (3, 2, 3) — y.shape (2, 3)当dim1时相当于有2个一维的向量进行相加×3结果是1个一维向量×3则还是一个二维向量 y.shape (3, 2, 3) — y.shape (3, 3)当dim2时相当于有3个数值进行相加×2×3结果两个值组成一维向量三个一维向量组成二维向量 y.shape (3, 2, 3) — y.shape (3, 2)
其他的数据操作也是这样类似的思想。 总结从中可以看出只要对一个n维度的数据的其中一维进行操作的话得到的结果会是n-1维的向量shape则是去掉那一维的个数。