这是在 PyTorch 中计算余弦相似度的正确方法吗?

Is this the right way to compute cosine similarity in PyTroch?

cos = torch.nn.CosineSimilarity(dim=-1, eps=1e-6)
c = torch.FloatTensor([1, 2, 4])
b = torch.FloatTensor([1, 2, 3])
simi = cos(b,c)
tensor(0.9915)

我在这个函数中使用了dim=-1,这是否意味着它是一个一维浮点列表?这是正确的吗?

与 python 中的大多数索引一样,-1 指的是最后一个维度(-2 将是倒数第二个,依此类推)。在初始化余弦相似度时使用 dim=-1 意味着将沿输入的最后一个维度计算余弦相似度。

例如,如果 bc 是大小为 [X,Y,Z] 的 3 维张量,则结果将是大小为 [X,Y] 的二维张量.在您的情况下,由于输入张量只有一维(大小 [3]),您最终会得到大小为 [] 的结果张量,即标量。