下面的程序会报错:RuntimeError: Subtraction, the `-` operator, with a bool tensor is not supported. If you are trying to invert a mask, use the `~` or `logical_not()` operator instead.
mask = torch.Tensor([True,True,False]).type(torch.bool)
a = torch.Tensor([3,2,1])
a[1-mask]=0
print(a)
原因是pytorch改版之后不允许对bool变量进行“-”操作,如果需要对bool变量进行反转,则使用“~”操作,正确的代码如下:
mask = torch.Tensor([True,True,False]).type(torch.bool)
a = torch.Tensor([3,2,1])
a[~mask]=0
print(a)
tensor([3., 2., 0.])