我试图使用torch.nn.CosineEmbeddingLoss
来计算两个张量之间的余弦距离,就像在这个博客文章https://medium.com/p/53eefdfdbcc7中解释的那样。
提交人声称,它可以以下列方式使用:
loss_function = torch.nn.CosineEmbeddingLoss(reduction='none')
# . . . Then during training . . .
loss = loss_function(reconstructed, input_data).sum()
loss.backward()
但当我试图在我的案例中评估这一点时,
nn.CosineEmbeddingLoss(reduction='none')(vec1,vec2).sum()
我得到了
TypeError: forward() missing 1 required positional argument: 'target'
我应该在这里指定什么目标?我只想评估两个向量之间的距离。
发布于 2022-02-28 18:43:17
对于要使用nn.CosineEmbeddingLoss
的丢失函数,请仔细阅读doc :该函数不仅仅是计算两个向量之间的余弦距离。如果它们的target
为1或-1,它也会对距离进行不同的处理。
https://stackoverflow.com/questions/71299407
复制相似问题