我在 Torch 中遇到了当前的编程问题。
我有一张由两张张量制成的表格:
require 'nn'
N = 4
aaaTensor = torch.randn(N)
bbbTensor = torch.randn(N)
thisTable = {aaaTensor, bbbTensor}
我想计算aaaTensor和bbbTensor的每对单值的余弦距离:
aaaTensor[1]
和bbbTensor[1]
aaaTensor[2]
和bbbTensor[2]
aaaTensor[N]
和bbbTensor[N]
而且我不知道该怎么做。
如果我使用nn.CosineDistance()
模块(a comment),它将计算aaaTensor和bbbTensor之间的一般余弦距离:
cosine = nn.CosineDistance()
cosine:forward{aaaTensor, bbbTensor}
0.7185
[torch.DoubleTensor of size 1]
我想要N = 4个输出。
我怎样才能实现这种逐个余弦距离计算? 感谢
答案 0 :(得分:2)
documentation表示nn.CosineDistance()接受批次。所以(虽然单个值的余弦距离没有意义),你可以这样做;
require 'nn'
N = 4
aaaTensor = torch.randn(N,1)
bbbTensor = torch.randn(N,1)
thisTable = {aaaTensor, bbbTensor}
cosine = nn.CosineDistance()
cosine:forward{aaaTensor, bbbTensor}