Still very new to PyTorch, but loving the style.

I am stuck on a small problem where I cannot get the gradient or call `backward()`

when using `masked_select()`

. I am willing to use `index_select()`

if I can figure out how to get the index. I feel close with `nonzero()`

but can’t quite get it to work.

This works, when I build the index by hand:

`import torch from torch.autograd import Variable import numpy as np x = np.array([ 0.00834103, 0.00212306, -999.0, 0.00149333, 0.00899409]) x = Variable(torch.from_numpy(x.astype('float32')),requires_grad=True) cond = Variable(torch.from_numpy(np.array([0,1,3,4]).astype('int32'))) y = x.index_select(0,cond.long()) out = y.sum() out.backward() print x.grad`

When I try to build the condition dynamically and use `masked_select`

, it fails with a `NotImplementedError`

:

`cond = (x>-999.) y = x.masked_select(cond)`

So I figured I would get the index and then send that to `index_select()`

but I get a `TypeError`

here:

`cond_idx = torch.nonzero(cond) *** TypeError: Type Variable doesn't implement stateless method nonzero`

Any ideas how to get this to work?