pytorch 为什么用穆尔而不用mat穆尔?

l7mqbcuq  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(129)

为什么我们使用

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

而不是

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

当我们对RecSys进行矩阵分解时
它是用来加速的还是别的什么?我可以使用第二个变体或第一个给予更好的结果吗?

sdnqo3pr

sdnqo3pr1#

这是两个不同的运营商。一个是Hadamard product,或按元素乘法(torch.mul),而另一个是标准matrix multiplicationtorch.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]])

相关问题