What is this attribute syntax in Python?
I am current following a tutorial in Pytorch and there is this expression:

grad_h[h &lt; 0] = 0


How does this syntax work and what does it do?

It means replace with zeros all the values in grad_h where its corresponding h is negative.

So it is implementing some kind of mask, to keep the gradient values only when h is negative

suppose that grad_h and h have the same shape.

grad_h.shape == h.shape


when you do h &lt; 0 you obtain an array of booleans of the same shape that is set to True if h[i] &lt; 0 for each i.

So then you apply this mask to do slicing on grad_h and finally you set all the sliced elements to zero
