我在张量(1,224,224)中有一个224x224的二进制图像,0像素代表背景,1个像素代表前景。 我想在张量(2,224,224)中重塑它,例如第一个“层”gt [0]具有1个像素,其中原始图像中有0个像素,反之亦然。这样一个层应该显示1s,其中有背景,另一个层将在前景上有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]。
答案 0 :(得分:0)
找到解决方案!
gt = gt.repeat(2, 1, 1)