【发布时间】:2022-01-02 14:55:39
【问题描述】:
我有一个包含 3 个通道图像的数据集,但我想使用每个图像的前 2 个通道作为 Resnet34 的输入。无论如何我可以加载每个图像的前 2 个通道吗?
【问题讨论】:
-
请提供足够的代码,以便其他人更好地理解或重现问题。
标签: python pytorch computer-vision conv-neural-network resnet
我有一个包含 3 个通道图像的数据集,但我想使用每个图像的前 2 个通道作为 Resnet34 的输入。无论如何我可以加载每个图像的前 2 个通道吗?
【问题讨论】:
标签: python pytorch computer-vision conv-neural-network resnet
你有两个问题:
Dataset 加载它们时删除一个。ResNet-18) 需要 3 个通道的输入 - 现在它将只有两个。 (这可能会触发类似this one 的错误)。您可以通过保留第三个通道但将其设置为零来解决这两个问题。 这可以使用自定义扩充轻松实现:
class ZeroThirdChannel(object):
def __init__(self):
pass
def __call__(self, x):
x[2, ...] = 0 # set the third channel to zero
return x
将此扩充添加到您的Dataset 的transforms 之后 ToTensor()。
【讨论】:
class关键字吗?
class 关键字引入才能成为有效的python。那里。我自己就是这么做的。一开始就应该这样做。