Torch Lua, bagaimana cara menghitung jarak kosinus untuk setiap pasangan nilai tunggal dari dua tensor?

Saya mempunyai masalah pemrograman saat ini di Torch.

Saya memiliki tabel yang terbuat dari dua Tensor:

require 'nn'
N = 4
aaaTensor = torch.randn(N)
bbbTensor = torch.randn(N)
thisTable = {aaaTensor, bbbTensor}

Saya ingin menghitung jarak kosinus untuk setiap pasangan nilai tunggal dari aaaTensor dan bbbTensor:

  • jarak kosinus antara aaaTensor[1] dan bbbTensor[1]
  • jarak kosinus antara aaaTensor[2] dan bbbTensor[2]
  • ...
  • jarak kosinus antara aaaTensor[N] dan bbbTensor[N]

Dan saya tidak tahu bagaimana melakukan ini. Jika saya menggunakan modul nn.CosineDistance() (link) , ini akan menghitung jarak kosinus umum antara aaaTensor dan bbbTensor:

cosine = nn.CosineDistance()
cosine:forward{aaaTensor, bbbTensor}
0.7185
[torch.DoubleTensor of size 1]

Saya ingin memiliki N=4 keluaran.

Bagaimana cara menerapkan perhitungan jarak kosinus satu per satu ini? Terima kasih


person DavideChicco.it    schedule 09.08.2016    source sumber
comment
Biasanya saya mengharapkan jarak kosinus diterapkan pada dua vektor tetapi aaaTensor[1] dan bbbTensor[2] hanyalah angka. Apa arti selisih kosinus dua bilangan?   -  person hugomg    schedule 09.08.2016


Jawaban (1)


dokumentasi mengatakan nn.CosineDistance() menerima batch. Jadi (walaupun jarak kosinus dari nilai tunggal tidak masuk akal) Anda dapat melakukannya seperti;

require 'nn'
N = 4
aaaTensor = torch.randn(N,1)
bbbTensor = torch.randn(N,1)
thisTable = {aaaTensor, bbbTensor}
cosine = nn.CosineDistance()
cosine:forward{aaaTensor, bbbTensor}
person fmguler    schedule 10.08.2016