Torch里的点乘与叉乘及其对应表达

1. 初始化3个tensor

a = torch.tensor([[1, 2, 3], [3, 3, 2]])     
b = torch.tensor([[1, 2, 3], [3, 3, 5], [4, 1, 2]])
c = torch.tensor([[5, 1, 2], [2, 7, 3]])

print('a:', a)
print('b:', b)
print('c:', c)

其shape为:

a: tensor([[1, 2, 3],     #size: (2, 3)
           [3, 3, 2]])
b: tensor([[1, 2, 3],     #size: (3, 3)
           [3, 3, 5],
           [4, 1, 2]])
c: tensor([[5, 1, 2],     #size: (2, 3)
          [2, 7, 3]])

2. 矩阵点乘: 对应元素相乘,要求矩阵维度相同,满足条件矩阵如 a(2, 3), c(2, 3)

  • 即Hadamard积,符号为 ⨀ \bigodot ,如A1 = a ⨀ \bigodot c, ⇒ \Rightarrow A 1 i j = a i j ∗ b i j A1_{ij} = a_{ij} \ast b_{ij} A1ij=aijbij ;
  • 即 A2 = a ∗ \ast c ;
  • 即 A3 = torch.mul(a, b)

运算得:

A1 == A2 == A3 = 
tensor([[ 5,  2,  6],
        [ 6, 21,  6]])

3. 矩阵叉乘: 前矩阵的列数 == 后矩阵的行数,满足条件矩阵如 a(2, 3), b(3, 3)

  • 即 B1 = a @ b;
  • 即 B2 = torch.mm(a, b)
  • 即 B3 = torch.matmul(a, b)
  • Note: torch.dot(para1, para2) 仅支持一维张量的叉乘运算

运算得:

B1 == B2 == B3 =
tensor([[19, 11, 19],
        [20, 17, 28]])
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值