为什么使用 mul 而不是 matmul?

问题描述 投票:0回答:1

我们为什么使用

out = torch.mul(usr_emb, item_emb).sum()

而不是

out = torch.matmul(usr_emb, torch.transpose(item_emb))

当我们对 RecSys 进行矩阵分解时?

它是用于速度还是其他什么?我可以使用第二种变体还是第一种可以得到更好的结果?

machine-learning pytorch recommendation-engine
1个回答
0
投票

这是两个不同的运算符。一种是 Hadamard 积,或按元素乘法 (

torch.mul
),另一种是标准 矩阵乘法 (
torch.matmul
)。

这是一个示例,将

x
指定为:

>>> x = torch.arange(9).view(3,3)

>>> x.mul(x) # same as x*x
tensor([[ 0,  1,  4],
        [ 9, 16, 25],
        [36, 49, 64]])

>>> x.matmul(x) # same as x@x
tensor([[ 15,  18,  21],
        [ 42,  54,  66],
        [ 69,  90, 111]])
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.