代码之家  ›  专栏  ›  技术社区  ›  Ecanyte

元素矩阵向量乘法

  •  0
  • Ecanyte  · 技术社区  · 4 年前

    我有张量 M 哪个商店 N 3 x 3 带dim的矩阵 n x 3 x 3 还有张量 五、 具有 N 3x1 向量和模糊 n x 3 .如何应用元素矩阵向量乘法,即 我 -带 我 -th向量,以获得带dim的输出张量 Nx3 ?

    谢谢你的帮助。

    0 回复  |  直到 4 年前
        1
  •  1
  •   Ivan Jeffrey Zhao    4 年前

    您想执行矩阵乘法运算( __matmul__ )以批量方式。直观地说,您可以使用批处理matmul运算符 torch.bmm .请记住,你首先需要解一个维度上的问题 v 这样它就变成了一个三维张量。在本例中,使用 None 像 v[..., None] 将提供一个 (n, 3, 1) .

    具有 手电筒bmm :

    >>> torch.bmm(m, v[..., None])
    

    事实证明, torch.matmul 开箱即用地处理此案例:

    >>> torch.matmul(m, v[..., None]) # same as m@v[..., None]
    

    如果你想明确控制操作,你可以选择 torch.einsum :

    >>> torch.einsum('bij,bj->bi', m, v)