Hi there,
I’ve just started to use use torch\ pytorch and so I’m just getting used to using tensors. I understand that for generating a boolean we can use the torch.geq(a,b), torch.leq(a,b) and so forth.
However, as I wanted to generate a new tensor, which looks at each element and if the condition is satisfied then the entry would be: 1, else : -1.
I originally used torch.geq(alpha, 0.5*torch.ones(alpha.size())), but I wasn’t sure how to effectively use this without using an if statement. So instead I just did the following on alpha:
alpha - tensor of shape 2 x 2
alpha = p_joint_new / p_joint_prev
a_values = torch.tensor(alpha.size())
for i in range(alpha.size(0)):
for j in range(alpha.size(1)):
if alpha[i][j] > 0.5:
a_values[i][j] = 2*1 - 1
else:
a_values[i][j] = -1
My way is slow, it is not elegant, nor error proof - is there a better way to do this in pytorch? As I will have to implement a number of conditions of this style.
Thank you for taking the time to reply and for the autograd library in pytorch!