Pytorch (1): 张量的广播和运算

一. 主题:

0. 理清Pytorch中广播的计算原理

1. 记录Pytorch中较为特殊的计算方法

2. 记录Pytorch矩阵计算方法

二. 广播:

当张量的维度shape不一致时,广播机制会自动调整张量维度使得计算可以顺利进行。

实例1:

张量t2.shape = (3, 4),张量t21.shape = (1, 4),其计算过程如下,将t21复制为shape=(3, 4),然后对应位置相加计算。

计算结果:

实例2:

当两个张量的形状上有两个分量不同时,只要不同的分量仍然有一个取值为1,则仍然可以进行广播。需要理解红色标注字体部分,张量分量不同时,如果分量取值不为1,则不可以进行广播运算。

 

实例3:

两个张量,每一个分量的维度都不同时,仍然可以进行广播运算。

 

总结:广播运算解决张量维度不同的问题,在张量分向量不同时,不同的分量中,有一个需要为1。

三. 逐点运算

相关重要函数整理如下:需要留意的是,这些运算都没有改变原来的数值,若需要改变原输入值,则需要调用函数 function_(),如torch.add(t1, t2),则应该修改为torch.add_(t1, t2)。

Tensor的大多数运算都是具有一定的静态性,静态性指的是,输入的张量有严格的类型要求,因为GPU不会像python一样动态识别数据类型,很多是有我们需要使用float()等方法做类型转换。

 

 总结:逐点计算与Numpy 或 pandas计算类似,需要留意function()与function_()的区别。

四. 统计量计算:

常用函数方法整理如下:需要特别留意统计计算中dim参数的使用场合和计算结果

对t2各个方向进行函数的统计计算

实例1:按列求和

我们知道t3.shape = (2, 3, 4),当dim = 0时,那么输出 out.shape= (3, 4),计算时,是将

[ 0.,  1.,  2.,  3.]与[12., 13., 14., 15.]对应元素一一相加
[ 4.,  5.,  6.,  7.]与[16., 17., 18., 19.]对应元素一一相加
[ 8.,  9., 10., 11.]与[20., 21., 22., 23.]对应元素一一相加

其中,由于dim=0对应的shape中(2,3,4)中的2,所以计算求和时,两两元素相加,得到如下结果:

实例2:按行求和

我们知道t3.shape = (2, 3, 4),当dim = 1时,那么输出 out.shape= (2, 4),计算时,是将

[[ 0.,  1.,  2.,  3.],
 [ 4.,  5.,  6.,  7.],
 [ 8.,  9., 10., 11.]]

按列相加得到 [12., 15., 18., 21.],将如下

[[12., 13., 14., 15.],
 [16., 17., 18., 19.],
 [20., 21., 22., 23.]]

按列相加得到 [48., 51., 54., 57.]

 

实例3:从第三个维度求和

我们知道t3.shape = (2, 3, 4),当dim = 2时,那么输出 out.shape= (2, 3),计算时,是将

[ [ 0., 1., 2., 3.],  

  [ 4., 5., 6., 7.], 

  [ 8., 9., 10., 11.] ]

按行相加得到 [ 6., 22., 38.],将如下

[ [12., 13., 14., 15.],

  [16., 17., 18., 19.],

  [20., 21., 22., 23.] ]

按行相加得到 [54., 70., 86.] 

 五. 矩阵计算

矩阵形变

 

 在Pytorch中矩阵可直接与向量相乘

 

 

 

 特征分解:

奇异值分解:

 

奇异值分解反推原矩阵:

 

 总结:通过奇异值分解,可以用更加简略,更少的数据来保存重要的信息。

 

链接:

PyTorch documentation — PyTorch 1.11.0 documentation

【PyTorch深度学习】Lesson4.张量的线性代数运算_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值