0
点赞
收藏
分享

微信扫一扫

PyTorch项目实战06——Tensor的归并操作

1 归并操作

在对 Tensor 进行归并操作时,会使输出的形状小于输入的形状,并可以沿着某一维度进行指定操作,如求和,既可以计算整个 Tensor 的和,也可以计算 Tensor 中每一行或者每一列的和。

2 具体实现

2.1 创建张量

首先使用 torch.linspace(0,14,8) 在 0~14 之间生成8个数组成的一维张量;

然后再使用 view() 方法,将上一步生成的一维张量转换为4行2列的二维张量。

PyTorch项目实战06——Tensor的归并操作_二维

2.2 常用的归并操作

函数

功能

mean/sum/median/mode

均值/和/中位数/众数

norm/dist

范数/距离

std/var

标准差/方差

cumsum/cumprod

累加/累乘

2.3 求和

使用 sum() 方法,可以实现对张量中元素进行求和:

  • sum() 方法中不加任何参数,是对所有元素进行加和;
  • sum() 方法中增加 dim 参数,即求和的方向,当 dim=0 时,表示按列进行加和,第一列为 0+4+8+12=24,第二列依此类推;当 dim=1 时,表示按行进行加和,第一行行 0+2=2,其他行依此类推;这种方式加和后,可以看到得到的结果中只有一个中括号,变为了一维张量。

PyTorch项目实战06——Tensor的归并操作_众数_02

  • sum() 方法中增加 dim 参数,同时增加 keepdim=True 参数,表示求和后,仍然保持原张量的维度,即张量是二维,求和后的张量仍然是二维。如下图所示,dim=1时,按行加和后,结果得到一个4行1列的二维张量;当 dim=0,按列加和后,结果得到一个2列1行的二维张量。

PyTorch项目实战06——Tensor的归并操作_数据_03

2.4 累加

调用 cumsum() 方法,按照张量中的一个轴进行累计加和。

如 cumsum(dim=0) 时,在获得的结果中,第一行数据不变,第二行数据为第一行数据加上第二行数据的值,第三行数据为前边两行的数据加上第三行的数据,第四行数据为前边三行的数据加上第四行的数据。

因为累加是有方向的,所以参数中的 dim 必须要指定。

PyTorch项目实战06——Tensor的归并操作_数据_04

2.5 累乘

调用 cumprod() 方法,按照张量中的一个轴进行累乘运算。参数中累乘方向 dim 必须要指定。

值得注意的是,当第一个元素为0时,其后经过累乘计算出的所有元素都为0。

PyTorch项目实战06——Tensor的归并操作_数据_05



举报

相关推荐

0 条评论