李沐:动手学习深度学习-线性代数笔记

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的矩阵。

你可能感兴趣的:(深度学习,线性代数,pytorch)