Pytorch 用不同形状张量计算余弦距离

Pytorch 用不同形状张量计算余弦距离,pytorch,cosine-similarity,Pytorch,Cosine Similarity,下面的张量表示一个词向量 A = (2, 500) 其中第一个维度是批次维度(即A包含两个单词向量,每个单词向量包含500个元素) 我还有下面的张量 B = (10, 500) 我想计算A和B之间的余弦距离 C = (2, 10, 1) i、 对于A中的每一行,计算B中每一行的余弦距离 我研究了如何使用torch.nn.functional.F.cosine\u相似性,但这不起作用,因为维度必须相同 在pytorch中实现这一点的最佳有效方法是什么?使用不查询的技术 import torc

下面的张量表示一个词向量

A = (2, 500)
其中第一个维度是批次维度(即A包含两个单词向量,每个单词向量包含500个元素)

我还有下面的张量

B = (10, 500)
我想计算A和B之间的余弦距离

C = (2, 10, 1)
i、 对于A中的每一行,计算B中每一行的余弦距离

我研究了如何使用
torch.nn.functional.F.cosine\u相似性
,但这不起作用,因为维度必须相同

在pytorch中实现这一点的最佳有效方法是什么?

使用
不查询的技术

import torch.nn.functional as F

C = F.cosine_similarity(A.unsqueeze(1), B, dim=-1)

print(C.shape)
# torch.size([2,10])

您键入内容中的小错误/行话:它是
torch.nn.functional.cosine\u相似性