У меня есть двоичное изображение 224x224 в тензоре (1, 224, 224), с 0 пикселями, представляющими фон, и 1 пикселем, представляющими передний план.
Я хочу изменить его в тензор (2, 224, 224), например, первый «слой» gt [0] имеет 1 пиксель, где было 0 пикселей в исходном изображении и наоборот. Таким образом, один слой должен показывать 1 с там, где есть фон, а другой будет иметь 1 с на переднем плане (в основном мне нужно иметь два дополнительных двоичных изображения в этом тензоре).
Это мой код:
# gt is a tensor (1, 224, 224)
gt = gt.expand((2, 224, 224))
backgr = gt[0]
foregr = gt[1]
backgr[backgr == 0] = 2 # swap all 0s in 1s and viceversa
backgr[backgr == 1] = 0
backgr[backgr == 2] = 1
gt[0] = backgr
print(gt[0])
print(gt[1])
Проблема в том, что оба слоя изменены с помощью этого кода, и я не могу понять, как сохранить один из двух постоянным и изменить только gt [0].