问题描述
在cuda / GPU上我有一组与图像中不同对象相对应的蒙版(以下形状和大小)
masks.shape: torch.Size([10,240,320,1])
masks[0].shape: torch.Size([240,1])
masks[0][:,:,0].shape: torch.Size([240,320])
1:我可以使用torch.tensor操作产生这些面罩的并集吗?这样我就可以将所有这些图像一次应用到图像上?
2:如何反转火炬张量中的值?我的意思是1,变成0,反之亦然。我试图〜mytensor,但它说运算符仅适用于整数或布尔值。我的张量中有浮点值,例如[1.]等。
我打算在GPU上执行所有这些操作,而又不将数据移回cpu。
谢谢。
解决方法
2:如何反转火炬张量中的值?
t = torch.tensor([1.,0.,1.,1.])
如果您不想更改类型,则可以从1中减去值。
1 - t
tensor([0.,0.])
或者更好的是,您可以将其转换为布尔类型,然后使用~
~t.type(torch.bool)
tensor([False,True,False,False])