Is there another way to Applies the function callable
to each element in the tensor instead of using apply_, because apply_ is quite slow. and only works with CPU tensors…
2 Likes
torch.apply_
is slow, and we don’t have a great efficient way to apply an arbitrary function to a tensor, but a common workaround for simple operations can be to use a mask.
E.g. say you wanted to do something like tensor.apply_( lambda x: x + 2 if x > 5 else x )
, instead you could write something like result = (tensor > 5) * 2 + tensor
.
Another function that can sometimes help is torch.where
.
3 Likes
ok. i will have a try. Thank you!