2016-08-09 8 views
2

토치에 현재 프로그래밍 문제가 있습니다.토치 루아, 두 텐서의 단일 값의 각 쌍에 대한 코사인 거리를 계산하는 방법은 무엇입니까?

  • 코사인 거리 :

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

    제가 단일 값 aaaTensor 및 bbbTensor의의 각 쌍에 대한 코사인 거리를 계산하고자 :

    I 두 텐서 이루어지는 테이블이 aaaTensor[1]bbbTensor[1]

  • 사이의 코사인 거리 aaaTensor[2]bbbTensor[2]사이3210
  • ...
  • 코사인 거리 aaaTensor[N] 사이 bbbTensor[N]

그리고 나는이 작업을 수행하는 방법을 모르겠어요. 제가 nn.CosineDistance() 모듈 (link)를 사용하는 경우와 aaaTensor bbbTensor 사이 일반적인 코사인 거리를 산출한다 :

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

제가 N = 4 개를 출력하고 싶다.

어떻게하면 하나씩 코사인 거리 계산을 구현할 수 있습니까? 감사합니다.

+2

보통 나는 코사인 거리가 두 벡터에 적용 할 수 있지만'aaaTensor [1]'와'bbbTensor [2]'단지 숫자 기대. 두 숫자의 코사인 차이는 무엇입니까? – hugomg

답변

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}