这是在 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
意味着将沿输入的最后一个维度计算余弦相似度。
例如,如果 b
和 c
是大小为 [X,Y,Z]
的 3 维张量,则结果将是大小为 [X,Y]
的二维张量.在您的情况下,由于输入张量只有一维(大小 [3]
),您最终会得到大小为 []
的结果张量,即标量。
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
意味着将沿输入的最后一个维度计算余弦相似度。
例如,如果 b
和 c
是大小为 [X,Y,Z]
的 3 维张量,则结果将是大小为 [X,Y]
的二维张量.在您的情况下,由于输入张量只有一维(大小 [3]
),您最终会得到大小为 []
的结果张量,即标量。