【问题标题】:pytorch operations: union and inversion of values in torch tensorpytorch 操作:火炬张量中值的联合和反转
【发布时间】:2021-01-14 03:04:37
【问题描述】:

我在 cuda/GPU 上有一组掩码,对应于图像中的不同对象(形状和大小如下)

masks.shape:            torch.Size([10, 240, 320, 1])
masks[0].shape:         torch.Size([240, 320, 1])
masks[0][:,:,0].shape:  torch.Size([240, 320])

1:我可以使用 torch.tensor 操作生成这些掩码的并集吗?这样我就可以在图像上一次性应用所有这些?

2:如何反转 Torch 张量中的值?我的意思是1,变成0,反之亦然。我试过 ~mytensor 但它说该运算符仅适用于整数或布尔值。我的张量中有浮点值,即 [1.] 等。

我打算在 GPU 上执行所有这些操作,而不将数据移回 CPU。

谢谢。

【问题讨论】:

  • 1. (torch.sum(masks, dim=0) > 0).astype('float') 可以解决问题

标签: python-3.x opencv image-processing pytorch tensor


【解决方案1】:

2:如何反转 Torch 张量中的值?

t = torch.tensor([1., 0., 0., 1., 0., 1., 1.])

如果你不想改变类型,你可以从 1 中减去值

1 - t
tensor([0., 1., 1., 0., 1., 0., 0.])

或者更好的是你可以将它转换成布尔类型,然后使用~

~t.type(torch.bool)
tensor([False,  True,  True, False,  True, False, False])

【讨论】:

    猜你喜欢
    • 2022-06-19
    • 1970-01-01
    • 2022-07-20
    • 2020-11-24
    • 2018-04-29
    • 1970-01-01
    • 2022-10-23
    • 2020-06-17
    • 2021-11-30
    相关资源
    最近更新 更多