torch进行矩阵运算

用torch进行矩阵运算

下面我主要区别以下几个函数:
  • torch.mul(a,b)
  • torch.matmul(a,b)
  • torch.mm(a,b)
  • torch.einsum()

其中,torch.mm()torch.matmul()torch.mul() 是我们比较常用的,但是用torch.einsum() 可以实现上述三个函数的任何一个的功能,下面我一一介绍这些函数的用法和适用情况。

  • torch.mul(a,b)

这个函数就是实现两个张量之间元素对元素的运算,也就是对应元素相乘,这个函数可以使用broadcast广播操作,因此a与b的维度可以不一致。

  • torch.mm(a,b)

实现矩阵乘法运算,必须满足矩阵乘法运算中对a,b的维度要求,即没有broadcast广播操作。

  • torch.matmul()

实现矩阵乘法运算,有广播操作,所以不需要满足矩阵乘法操作中维度的严格要求。

  • torch.esinum()—>将输入的元素的乘积沿符号指定的维度求和
# 用torch.esinum()实现torch.mul(a,b)
b1 = 3 * torch.ones(5, 4, 2)
b = 2 * torch.ones(5, 4, 2)
c = torch.einsum('kji,kji->kji', b, b1)
print((c == (torch.mul(b, b1))))
print(c, '---------c------------')
# 用torch.esinum()实现矩阵乘法torch.matmul()
b1 = 3 * torch.ones(3, 4)
b = 2 * torch.ones(5, 4, 2)
c = torch.einsum('kji,mj->kmi', b, b1)

# 用torch.esinum()实现矩阵乘法torch.mm()
b1 = 3 * torch.ones(3, 4)
b = 2 * torch.ones(4, 2)
c = torch.einsum('ji,mj->mi', b, b1)

具体怎么用的感觉不知道应该怎么具体描述,多用几次torch.esinum()就会了,这个函数的使用范围很广,除了替代矩阵之间的运算还有其他的一些用法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值