pytorch中的基本计算方法

基本概念:

标量 》 向量 》 矩阵 》 张量
一个数 》 一维数组 》 二维数组 》 n维数组

1、torch.sum(A)
降维求和, 如果A是二维矩阵,也就是所有元素之和。
torch.sum(A, dim=0, keepdim=True) 非降维求和 ,沿某个轴计算元素的累积总和,比如dim=0(按行计算),此函数不会沿任何轴降低 输入张量的维度。keepdim=True 保持轴数不变。

2、 torch.dot(A, B)
点积(向量 * 向量), 只能计算 一维向量间的 按元素相乘后,进行求和, 相当于 torch.sum(A*B)

3、 torch.mv(a , x)
矩阵-向量积。 矩阵的列维数 (延轴1的长度) 必须和向量长度一致

4、 torch.mm(A,B)
该函数用于执行两个二维张量(矩阵)之间的矩阵乘法运算。且 A的列数 必须 B的行数。
具体来说,如果你有两个张量 A 和 B,它们的形状分别是 [m, n] 和 [n, p],那么 torch.mm(A, B) 的结果将是一个形状为 [m, p] 的二维张量。

5、torch.matmul(A, B)
函数几乎可以用于所有矩阵/向量相乘的情况,其乘法规则视参与乘法的两个张量的维度而定。
两个张量相乘划分成了五种情形:一维 × 一维、二维 × 二维、一维 × 二维、二维 × 一维、涉及到三维及三维以上维度的张量的乘法。
5.1、 如果两个张量都是一维的,即 torch.Size([n]) ,此时返回两个向量的点积。作用与 torch.dot() 相同,同样要求两个一维张量的元素个数相同。
5.2、 如果两个参数都是二维张量,那么将返回矩阵乘积。作用与 torch.mm() 相同,同样要求两个张量的形状需要满足矩阵乘法的条件,即(n×m)×(m×p)=(n×p)
5.3、 如果第一个参数是一维张量,第二个参数是二维张量,那么在一维张量的前面增加一个维度,然后进行矩阵乘法,矩阵乘法结束后移除添加的维度。
5.4、 如果第一个参数是二维张量(矩阵),第二个参数是一维张量(向量),那么将返回矩阵×向量的积。作用与 torch.mv() 相同。另外要求矩阵的形状和向量的形状满足矩阵乘法的要求。
5.5、 三位张量A 和 B,torch.matmul(A, B) 会执行批量矩阵乘法。
假设 A 和 B 是形状为 [batch_size, m, n] 和 [batch_size, n, p] 的三维张量,那么 torch.matmul(A, B) 将返回形状为 [batch_size, m, p] 的结果。注意事项:
输入张量 A 和 B 的形状必须匹配,即 A 的最后一个维度(n)必须与 B 的倒数第二个维度(n)相同。
如果输入张量有更高维度(四维及以上),torch.matmul 将沿着所有前导维度执行批量矩阵乘法。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值