【问题标题】:matrix product of the two tensors [duplicate]两个张量的矩阵乘积[重复]
【发布时间】:2019-09-22 14:05:28
【问题描述】:

如何在 PyTorch 中计算两个张量的矩阵乘积?

x =  torch.Tensor([[1, 2, 3], [1, 2, 3]]).view(-1, 2)
y =  torch.Tensor([[2, 1]]).view(2, -1)

我对这些选项感到困惑。

【问题讨论】:

  • PyTorch,而不是您应用的标签中的TensorFlow
  • @graseza 这是来自 Udacity Scholarship 的问题。请自行研究。

标签: python matrix pytorch linear-algebra tensor


【解决方案1】:

您可以使用以下代码中的选项之一:

In [188]: torch.einsum("ij, jk -> ik", x, y)
Out[188]: 
tensor([[4.],
        [7.],
        [7.]])

In [189]: x.mm(y)
Out[189]: 
tensor([[4.],
        [7.],
        [7.]])

In [193]: x @ y
Out[193]: 
tensor([[4.],
        [7.],
        [7.]])

In [194]: torch.matmul(x, y)
Out[194]: 
tensor([[4.],
        [7.],
        [7.]])

如您所见,所有这些方法都会产生相同的结果。


x*y 是 hadamard 乘积(元素乘法),在这种情况下不起作用。此外,torch.dot() 也会失败,因为它需要一维张量。 torch.sum(x*y) 只会给出一个标量值,这也是错误的,因为您希望进行矩阵乘法,而不是内积。

【讨论】:

    猜你喜欢
    • 2019-04-21
    • 2013-03-31
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    相关资源
    最近更新 更多