修改Pytorch 3D张量中的值

我有一个224×224的二进制图像,存储在一个张量中(1, 224, 224),其中0像素表示背景,1像素表示前景。我希望将其重塑为一个张量(2, 224, 224),使得第一层gt[0]在原图像中0像素的地方显示1像素,反之亦然。这样,一层应该在背景处显示1,而另一层则在前景处显示1(基本上,我需要在这个张量中有两个互补的二进制图像)。

这是我的代码:

# gt是一个张量(1, 224, 224)
gt = gt.expand((2, 224, 224))
backgr = gt[0]
foregr = gt[1]
backgr[backgr == 0] = 2 # 将所有0换成1,反之亦然
backgr[backgr == 1] = 0
backgr[backgr == 2] = 1
gt[0] = backgr
print(gt[0])
print(gt[1])

问题是使用这段代码两个层都被修改了,我无法弄清楚如何保持其中一个层不变,只修改gt[0]。


回答:

找到了解决方案!

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

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注