【发布时间】:2021-03-25 18:18:20
【问题描述】:
我的模型是这样的,旨在处理 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)
【问题讨论】:
-
如果没有实现层和数据集,我只能假设
inconv(3, 64的大小为[64, 3, 3, 3],并且是在计算forward时引发错误的层。你能打印出images的形状吗?是4, 4, 1024, 2048吗?如果是这样,我们将需要您的数据集的实施细节。 -
谢谢@Ivan。是的,形状是 4、4、1024、2048。我想我找到了解决方案,我会在这里发布。您的解释确实帮助我解决了这个问题。
标签: python image image-processing pytorch torchvision