繁体   English   中英

RuntimeError: 给定组=1,大小为 [64, 3, 3, 3] 的权重,预期输入 [4, 4, 1024, 2048] 有 3 个通道,但有 4 个通道

[英]RuntimeError: Given groups=1, weight of size [64, 3, 3, 3], expected input[4, 4, 1024, 2048] to have 3 channels, but got 4 channels instead

我的 model 是这样的,设计用于处理 RGB 图像。 以前我用 RGB 和灰度图像进行了测试,结果很好。 突然它无法使用新的 RGB 数据集。

class UNet(nn.Module):
    def __init__(self):
        super(UNet, self).__init__()
        self.inc = inconv(3, 64)
        self.down1 = down(64, 128)
        self.down2 = down(128, 256)
        self.down3 = down(256, 512)
        self.down4 = down(512, 512)
        self.up1 = up(1024, 256)
        self.up2 = up(512, 128)
        self.up3 = up(256, 64)
        self.up4 = up(128, 64)
        self.sem_out = outconv(64, 2)
        self.ins_out = outconv(64, 70)

数据集加载器:

train_dataset = DataLoaderInstanceSegmentation()
train_dataloader = DataLoader(train_dataset, batch_size=4)

训练:

for epoch in range(5):    
    for batched in train_dataloader:
        images, sem_labels, ins_labels = batched
        images = Variable(images)
        sem_labels = Variable(sem_labels)
        ins_labels = Variable(ins_labels)
        model.zero_grad()
        sem_predict, ins_predict = model(images)

我找到了解决方案。 删除 alpha 通道代码后工作正常

        # data = np.array(Image.open(img_path))
        # label_seg = np.array(Image.open(seg_mask_path))
        # label_ins = np.array(Image.open(ins_mask_path))
        data =  self.to_tensor(Image.open(img_path).convert('RGB'))
        label_seg =  self.to_tensor(Image.open(seg_mask_path).convert('L'))
        label_ins =  self.to_tensor(Image.open(ins_mask_path).convert('L'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 RuntimeError: 给定组=1,大小为 [64, 1, 4, 4] 的权重,预期输入 [256, 3, 32, 32] 有 1 个通道,但有 3 个通道 RuntimeError: Given groups=1, weight of size [64, 3, 3, 3], 预期输入 [4, 5000, 5000, 3] 有 3 个通道,但得到 5000 个通道 RuntimeError:给定组= 1,权重为[64,3,7,7],预期输入[3,1,224,224]具有3个通道,但改为1个通道 RuntimeError: Given groups=1, weight of size [64, 32, 3, 3], 预期输入 [128, 64, 32, 32] 有 32 个通道,但得到 64 个通道 RuntimeError: 给定组=1,大小为 [64, 64, 1, 1] 的权重,预期输入 [4, 1, 1080, 1920] 有 64 个通道,但有 1 个通道 RuntimeError: 给定组=1,大小为 [6, 3, 3, 3] 的权重,预期输入 [4, 224, 3, 224] 有 3 个通道,但有 224 个通道 RuntimeError:给定 groups=1,权重大小 [32, 3, 3, 3],预期输入 [1, 4, 160, 40] 有 3 个通道,但得到的是 4 个通道 RuntimeError:给定组 = 1,大小为 [6、1、5、5] 的权重,预期输入 [128、3、218、178] 有 1 个通道,但有 3 个通道 为什么会出现错误:给定组=1,大小为 [8, 1024, 1, 1] 的权重,预期输入 [8, 304, 9, 40] 有 1024 个通道,但有 304 个通道 给定组=1,大小为 16 16 3 3 的权重,预期输入 [16、64、222、222] 有 16 个通道,但有 64 个通道?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM