pytorch矩阵的乘法

在用pytoch搭建深度学习模型时,矩阵的乘法必不可少,下面介绍四种方法来实现矩阵的乘法

import torch

a = torch.randn(3, 4)  # 建立一个3*4的张量
b = torch.randn(4, 3)  # 建立一个4*3的张量

print(torch.mm(a, b))  # 1,矩阵乘法,调用函数,返回3*3的矩阵乘积
print(a.mm(b))  #2,矩阵乘法,内置方法,返回3*3的矩阵乘积
print(a @ b)  #3,矩阵乘法,@运算符,返回3*3的矩阵乘积
print(torch.einsum("ab,bc->ac", a, b)) # 4,爱因斯坦求和乘法,返回3*3的矩阵乘积

a = torch.randn(2, 3, 4)  # 建立一个2*3*4的张量
b = torch.randn(2, 4, 3)  # 建立一个2*4*3的张量

print(torch.bmm(a, b))  #1,迷你批次矩阵乘法,调用函数,返回2*3*3的矩阵乘积
print(a.bmm(b))  # 2,迷你批次矩阵乘法,内置方法,返回2*3*3的矩阵乘积
print(a @ b)  # 3, 矩阵乘法,@运算符,返回2*3*3的矩阵乘积,根据输入张量的形状决定调用批次矩阵乘法
print(torch.einsum("abc,acd->abd", a, b)) # 4, 爱因斯坦求和乘法,返回2*3*3的矩阵乘积

Done!!!

你可能感兴趣的:(pytorch,pytorch)