二维矩阵和一维向量的乘积
例子
x = torch.arange(12, dtype=torch.float32).reshape((6, 2))
y = torch.tensor([2, 2], dtype=torch.float32)
print(x)
print(y)
print(torch.matmul(x, y))
tensor([[ 0., 1.],
[ 2., 3.],
[ 4., 5.],
[ 6., 7.],
[ 8., 9.],
[10., 11.]])
tensor([2., 2.])
tensor([ 2., 10., 18., 26., 34., 42.])
x是维度为(6,2)
的矩阵,y
是维度为(2)
的行向量,要先将y
扩充到维度为(2)
才能乘,扩充之后y变成([[2.], [2.]])
.此时x
为6*2
,y
为2*1
,可以直接乘,得到维度为(6,)
的列向量[[2.], [10.], [18.], [26.], [34.], [42.]]
。
计算完之后需要去掉扩充的维度,即变成为(6)
,即为行向量[ 2., 10., 18., 26., 34., 42.]