Изменить значения внутри тензора Pytorch 3D - PullRequest
0 голосов
/ 14 мая 2018

У меня есть двоичное изображение 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].

1 Ответ

0 голосов
/ 14 мая 2018

Нашли решение!

gt = gt.repeat(2, 1, 1)
...