我有两个嵌入向量A1和B1,大小为32(可能是64,等等)。
A = torch.rand(32)
A1 = torch.unsqueeze(A, dim = 1)
A1
B = torch.rand(32)
B1 = torch.unsqueeze(B, dim = 1)
B1
现在,我希望能够找到它们有多相似,基于每个元素,比如4,8,16个元素。因此输出看起来像是一个4(或8 ......等等)元素的向量。
ExampleOutput = [.4, .5, .6, .7] # as the window is 8 (from 32 sized vector)
这意味着相似度将在一个窗口上计算。我知道一种方法可以使用 Torch 直方图。
1.你知道我怎么计算这个吗?
先谢了。
1条答案
按热度按时间h7appiyu1#
你的问题有点模糊。相似性是什么意思?例如,如果你考虑两个2元素向量,你可以计算L1,L0(曼哈顿距离),L2(MSE),L... L_infinity,余弦相似性等。向量有很多相似性度量。
其次,你打算如何“池化”向量?你可以计算相似性度量,然后在每个窗口上取最小值/最大值/平均值。你可以在每个窗口上取最小值/最大值/平均值,然后计算相似性。你可以想出一些其他的介于两者之间的方法。
简而言之,有很多方法可以做到这一点,你选择的方法应该由你的输入结构和你的问题的背景,超出了问题的范围和提供的细节。