介绍
Tensor,又称"张量",其实就是n维度数组。不同维度的Tensor示意图如下:
关于Tensor.reshape
reshape函数可以处理总元素个数相同的任何新形状,【3,2,5】->【3,10】->【5,6】这个流程如下图所示:
关于Tensor.sum(0, keepdim=True)
有时需要对Tensor按照某一维度进行求和,那么实际上就是将所求和的维度从向量降维成标量
举个栗子
import torch# 创建一个 2*3*4 的三秩张量
X = torch.arange(24).reshape(2,3,4)# 以下是X内部的值:
tensor([[[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9, 10, 11]],[[12, 13, 14, 15],[16, 17, 18, 19],[20, 21, 22, 23]]])# 分别对 X 从 0轴、1轴、2轴进行求和
X.sum(0, keepdim=True), X.sum(1, keepdim=True),X.sum(2, keepdim=True)------------------下面是求和后的 X------------------
# 0轴
(tensor([[[12, 14, 16, 18],[20, 22, 24, 26],[28, 30, 32, 34]]])# 1轴tensor([[[12, 15, 18, 21]],[[48, 51, 54, 57]]])# 2轴tensor([[[ 6],[22],[38]],[[54],[70],[86]]]))
可视化
单从输出上来看也许不是很直观,那么可以借助图像来显示【按维度求和】具体发生了什么,如下所示: