【问题标题】:Change values inside a Pytorch 3D tensor更改 Pytorch 3D 张量内的值
【发布时间】:2018-10-23 22:30:52
【问题描述】:

我在张量 (1, 224, 224) 中有一个 224x224 二进制图像,其中 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]。

【问题讨论】:

    标签: python-3.x matrix machine-learning pytorch tensor


    【解决方案1】:

    找到了解决办法!

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

    【讨论】:

    • 解释一下,为什么这解决了您的问题,将大大改善您的答案。请阅读How do I write a good answer?
    • 带有“重复”的每一层都是独立的
    猜你喜欢
    • 2019-06-24
    • 2021-08-22
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 2021-03-14
    相关资源
    最近更新 更多