从 Pytorch Tensor 获取值的范围

Getting range of values from Pytorch Tensor

我正在尝试从我的 pytorch 张量中获取特定范围的值。

tensor=torch.tensor([0,1,2,3,4,5,6,7,8,9])
new_tensor=tensor[tensor>2]
print(new_tensor)

这将给我一个标量为 3-9 的张量

new_tensor2=tensor[tensor<8]
print(new_tensor2)

这将给我一个标量为 0-7 的张量

new_tensor3=tensor[tensor>2 and tensor<8]
print(new_tensor3)

但是这会引发错误。我能用这样的东西得到一个值为 3-7 的张量吗?我想直接编辑张量,不想改变张量本身的顺序。

grad[x<-3]=0.1
grad[x>2]=1
grad[(x>=-3 and x<=2)]=siglrelu(grad[(x>=-3 and x<=2)])*(1.0-siglrelu(grad[(x>=-3 and x<=2)]))

这就是我真正想要的,我不确定如何去做。感谢任何帮助,谢谢!

可以使用&操作,

t = torch.arange(0., 10)
print(t)
print(t[(t > 2) & (t < 8)])

输出是,

tensor([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
tensor([3., 4., 5., 6., 7.])