2015-10-07 21 views
8

Ho bisogno di un comando Torch che controlli se due tensori hanno lo stesso contenuto e restituisce VERO se hanno lo stesso contenuto.Come verificare se due tensori o matrici toriche sono uguali?

Ad esempio:

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 

Cosa devo usare in questo script, invece di EQUIVALENCE_COMMAND?

Ho provato semplicemente con == ma non funziona.

risposta

10

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

torch.eq(a, b) 

Utensili == operatore confrontando ciascun elemento in una con b (se b è un numero) o ciascun elemento di un elemento con corrispondente b.

--update

da @deltheil

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

o ancora più semplice

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

Per ottenere un boo finale magra devi anche avvolgere con ['torch.all'] (https://github.com/torch/torch7/blob/28de02639e8e970532f2635d47ba3eabdf50e04f/doc/maths.md#torchalla), cioè' torch.all (torch.eq (tens_a, tens_b)) 'o ancora più semplice' torch.all (tens_a: eq (decine_b)) '. – deltheil

+0

Grazie a @deltheil hai ragione. Se hai riscritto questo commento come risposta, lo accetterei come risposta finale –

+3

@YuTse ti permetto di aggiornare la tua risposta con 'torch.all'. – deltheil

1

Prova questo se si vuole ignorare piccole differenze di precisione che sono comuni per i galleggianti

torch.all(torch.lt(torch.abs(torch.add(tens_a, -tens_b)), 1e-12)) 
Problemi correlati