pytorch中的乘法总结

一、简介

  • 点积(数量积,dot product)
  • 点积(数量积,dot product)
  • 点积(数量积,dot product)

二、用法

1. 点积(torch.dot())

即数量积,对应相乘然后求和。

torch.dot(input, other, *, out=None) → Tensor
# 输入的两个张量必须为1维的。

和numpy的dot product不同,numpy的点积支持二维矩阵运算,但是得到的是矩阵积(即按照矩阵相乘法则进行计算。)

2. 矩阵逐元素乘法(Element-wise)(torch.mul())

两个矩阵对应相乘,有广播机制。

torch.mul()

3. 矩阵乘法(matrix-mattix multiplication)

矩阵乘法:nm 和 md矩阵相乘得 m*d.

  • 二维矩阵乘法( torch.mm() )
# 二维矩阵的矩阵乘法,不支持广播机制。
torch.mm()
  • 三维带batch的矩阵乘法 ( torch.bmm() )

输入的两个矩阵带有batch size的维度(第一维且相同),不支持广播机制。
输入的两个矩阵形状为(b, n, m)(b, m, d)

torch.bmm(bmat1, bmat2)
  • 多维矩阵乘法 ( torch.matmul() )
torch.matmul()

两个输入均1-d:按照点积进行运算。
两个输入均2-d:按照二维矩阵乘积运算。
1-d和2-d:
(n) 和 (n, m)当成(1, n) 和 (n, m),求得矩阵乘积为(1, m),然后前置维度1删除最终得到 (m).
④**2-d和1-d:和③同理,
N-d和M-d(M、N均≥1 且 M、N其中一个至少>2):**最后两个维度当成矩阵乘积,前面的均当成batch。如 ( j ∗ 1 ∗ n ∗ n ) 和 ( k ∗ n ∗ n ) = ( j ∗ k ∗ n ∗ n ) (j*1*n*n)和(k*n*n) =(j*k*n*n) (j1nn)(knn)=(jknn),同理, ( j ∗ 1 ∗ n ∗ m ) 和 ( k ∗ m ∗ p ) = ( j ∗ k ∗ n ∗ p ) (j*1*n*m)和(k*m*p) =(j*k*n*p) (j1nm)(kmp)=(jknp).

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值