2016-03-29 6 views
0

Ich habe zwei Tensoren:Torch7: Scheibe Tensor Maske mit ByteTensor

  1. Etiketten ist ein 1D-Tensor (5000)
  2. -Datensatz ist 4D Tensor (5000,1,32,32)

Ich möchte die Beschriftungen und das Dataset, die dem Label mit dem Wert 1 entsprechen, effizient schneiden. Es gelingt mir, die Beschriftungen, aber nicht das Dataset zu schneiden.

Schneiden der Etiketten:

positive_mask = labels:eq(1) 
sliced_labels = labels[positive_mask] 

Ich habe versucht, die folgenden schneiden den Datensatz zu tun und ist fehlgeschlagen:

sliced_dataset = dataset[positive_mask] 
sliced_dataset = dataset[{positive_mask, {}, {}, {}}] 
sliced_dataset = dataset:narrow(1,positive_mask) 
sliced_dataset = dataset:select(1,positive_mask) 

Gibt es eine elegante Ansatz dies in Torch7 auszuführen?

Antwort

1
sliced_dataset = dataset:index(1, positive_mask:nonzero():squeeze())