关于matmul函数的用法难点

文章通过Python的torch库展示了如何进行二维矩阵和一维向量的乘法。给定一个(6,2)的矩阵x和一个(2)的行向量y,首先需要将y扩充为维度为(2,1)的列向量,然后进行乘法运算,得到一个(6,)的列向量结果,最后去掉扩充的维度,转换为行向量。
摘要由CSDN通过智能技术生成

二维矩阵和一维向量的乘积

例子
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.]]).此时x6*2y2*1,可以直接乘,得到维度为(6,)的列向量[[2.], [10.], [18.], [26.], [34.], [42.]]
计算完之后需要去掉扩充的维度,即变成为(6),即为行向量[ 2., 10., 18., 26., 34., 42.]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值