![](/img/trans.png)
[英]RuntimeError: Given groups=1, weight of size [64, 1, 4, 4], expected input[256, 3, 32, 32] to have 1 channels, but got 3 channels instead
[英]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.