Pytorch 中 matmul 广播

Pytorch 中 matmul 广播方式

一、两个 1 维,向量内积

a = torch.ones(3)
b = torch.ones(3)
print(torch.matmul(a,b))  # tensor(3.)

二、两个 2 维,矩阵相乘

a = torch.ones(3,4)
b= torch.ones(4,3)
print(torch.matmul(a,b))  
# tensor([[4., 4., 4.],
#        [4., 4., 4.],
#        [4., 4., 4.]])

三、一个 1 维,二个 2 维,矩阵和向量相乘

注意:相靠近的那个维数要相同,比如(7)和(7,8,5),又比如(7,8,5)和(5)

a = torch.ones(3)
b= torch.ones(3,4)
print(torch.matmul(a,b))  # tensor([3., 3., 3., 3.])

a = torch.ones(3,4)
b = torch.ones(4)
print(torch.matmul(a,b))  # tensor([4., 4., 4.])

四、高维情况

注意:两个都高于 2 维,那么除掉最后两个维度外(最后两个维度满足矩阵乘法,即(m,k)*(k,n)),剩下的满足广播机制

a=torch.ones(5,3,4,1)
b=torch.ones(  3,1,1)
print(torch.matmul(a,b))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值