2015-10-07 33 views
8

2つのテンソルの内容が同じかどうかを調べ、同じ内容の場合はTRUEを返すTorchコマンドが必要です。例えば2つのTorchテンソルまたは行列が等しいかどうかを確認する方法?

local tens_a = torch.Tensor({9,8,7,6}); 
local tens_b = torch.Tensor({9,8,7,6}); 

if (tens_a EQUIVALENCE_COMMAND tens_b) then ... end 

は、私が代わりにEQUIVALENCE_COMMANDのこのスクリプトで何を使うべきでしょうか?

私は単に==で試しましたが、うまくいきません。

答えて

10

https://github.com/torch/torch7/blob/master/doc/maths.md#torcheqa-b

torch.eq(a, b) 

を実装== Bとの各要素を比較オペレータまたはbの対応する要素と各要素(B番号である場合)。

--update

@deltheil

torch.all(torch.eq(tens_a, tens_b)) 

またはさらに簡単

torch.all(tens_a:eq(tens_b)) 
+5

最終的なブー「torch.all」(https://github.com/torch/torch7/blob/28de02639e8e970532f2635d47ba3eabdf50e04f/doc/maths.md#torchalla)、つまり 'torch.all(torch.eq()を使ってラップする必要があります。十分_a、十数_b)) 'またはそれより簡単な' 'torch.all(十進数:eq(十進_b))'になります。 – deltheil

+0

ありがとうございます。このコメントを答えとして書き直した場合、私は最終的な答えとしてそれを受け入れるでしょう。 –

+3

@YuTseあなたはあなたの答えを 'torch.all'で更新することができます。 – deltheil

1

からあなたが浮い

torch.all(torch.lt(torch.abs(torch.add(tens_a, -tens_b)), 1e-12)) 
のために共通している小型精密違いを無視したい場合は、これを試してみてください
関連する問題