我有张量 M 哪个商店 N 3 x 3 带dim的矩阵 n x 3 x 3 还有张量 五、 具有 N 3x1 向量和模糊 n x 3 .如何应用元素矩阵向量乘法,即 我 -带 我 -th向量,以获得带dim的输出张量 Nx3 ?
3 x 3
n x 3 x 3
3x1
n x 3
Nx3
谢谢你的帮助。
您想执行矩阵乘法运算( __matmul__ )以批量方式。直观地说,您可以使用批处理matmul运算符 torch.bmm .请记住,你首先需要解一个维度上的问题 v 这样它就变成了一个三维张量。在本例中,使用 None 像 v[..., None] 将提供一个 (n, 3, 1) .
__matmul__
torch.bmm
v
None
v[..., None]
(n, 3, 1)
具有 手电筒bmm :
手电筒bmm
>>> torch.bmm(m, v[..., None])
事实证明, torch.matmul 开箱即用地处理此案例:
torch.matmul
>>> torch.matmul(m, v[..., None]) # same as m@v[..., None]
如果你想明确控制操作,你可以选择 torch.einsum :
torch.einsum
>>> torch.einsum('bij,bj->bi', m, v)