Lua Torch相当于np.where()?

时间:2016-03-09 01:36:10

标签: numpy lua torch

我有一个ByteTensor,想要获取有1的索引。在numpy,我可以做类似

的事情
a = np.array([1,0,1,0,1])
return np.where(a)

将返回(array([0, 2, 4]),)。这个功能是在Torch中定义的吗?

(在我的特定情况下,我想使用这些索引来索引几个不同的Tensor对象,但是通常知道如何执行此操作会很好。)

1 个答案:

答案 0 :(得分:5)

您可以使用torch.nonzero,例如:

> a = torch.ByteTensor{1,0,1,0,1}
> print(torch.nonzero(a))                                                                                         
 1                                                                                                                  
 3                                                                                                                  
 5                                                                                                                  
[torch.LongTensor of size 3x1]

如果你真的需要找到1-s,你可以链接一个逻辑运算符:

> a = torch.ByteTensor{1,2,1,6,1}
> a:eq(1):nonzero()