torch.mv()与torch.mm()
A = torch.arange(20,dtype=torch.float32).reshape(5,4)
x=torch.arange(4,dtype=torch.float32)
A,x,A.shape,x.shape,torch.mv(A,x)
(tensor([[ 0., 1., 2., 3.],
[ 4., 5., 6., 7.],
[ 8., 9., 10., 11.],
[12., 13., 14., 15.],
[16., 17., 18., 19.]]),
tensor([0., 1., 2., 3.]),
torch.Size([5, 4]),
torch.Size([4]),
tensor([ 14., 38., 62., 86., 110.]))
A是一个5*4的矩阵,x是一个向量,torch.mv(A,x)计算的是Ax,得到一个向量。
此处提出疑问,向量x是否区分行列向量
A = torch.arange(20,dtype=torch.float32).reshape(5,4)
x=torch.arange(4,dtype=torch.float32).reshape(4,1)
A,x,A.shape,x.shape,torch.mm(A,x)
(tensor([[ 0., 1., 2., 3.],
[ 4., 5., 6., 7.],
[ 8., 9., 10., 11.],
[12., 13., 14., 15.],
[16., 17., 18., 19.]]),
tensor([[0.],
[1.],
[2.],
[3.]]),
torch.Size([5, 4]),
torch.Size([4, 1]),
tensor([[ 14.],
[ 38.],
[ 62.],
[ 86.],
[110.]]))
定义一个x为4*1矩,此时x为4行1列矩阵,用torch.mm(A,x)计算的是两个矩阵的乘积,得到一个5*1的矩阵。