python - 值错误输入 0 与层模型不兼容
问题描述
我正在尝试使用深度学习进行肺部检测,但遇到了一些错误。
我有一个 keras 模型,我将附在下面。我得到的错误如下:
ValueError: Input 0 is incompatible with layer model: expected shape=(None, 1, 512, 512), found shape=(2, 3, 512, 512)
我拥有的模型如下:
def get_unet():
inputs = Input((1,img_rows, img_cols))
conv1 = Convolution2D(32, 3, 1, activation='relu', padding='same')(inputs)
conv1 = Convolution2D(32, 3, 1, activation='relu', padding='same')(conv1)
pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)
conv2 = Convolution2D(64, 3, 1, activation='relu', padding='same')(pool1)
conv2 = Convolution2D(64, 3, 1, activation='relu', padding='same')(conv2)
pool2 = MaxPooling2D(pool_size=(2, 2))(conv2)
conv3 = Convolution2D(128, 3, 1, activation='relu', padding='same')(pool2)
conv3 = Convolution2D(128, 3, 1, activation='relu', padding='same')(conv3)
pool3 = MaxPooling2D(pool_size=(2, 2), padding='same')(conv3)
conv4 = Convolution2D(256, 3, 1, activation='relu', padding='same')(pool3)
conv4 = Convolution2D(256, 3, 1, activation='relu', padding='same')(conv4)
pool4 = MaxPooling2D(pool_size=(2, 2), padding='same')(conv4)
conv5 = Convolution2D(512, 3, 1, activation='relu', padding='same')(pool4)
conv5 = Convolution2D(512, 3, 1, activation='relu', padding='same')(conv5)
up6 = concatenate([UpSampling2D(size=(2, 2))(conv5), conv4], axis=1)
conv6 = Convolution2D(256, 3, 1, activation='relu', padding='same')(up6)
conv6 = Convolution2D(256, 3, 1, activation='relu', padding='same')(conv6)
up7 = concatenate([UpSampling2D(size=(2, 2))(conv6), conv3], axis=1)
conv7 = Convolution2D(128, 3, 1, activation='relu', padding='same')(up7)
conv7 = Convolution2D(128, 3, 1, activation='relu', padding='same')(conv7)
up8 = concatenate([UpSampling2D(size=(2, 2))(conv7), conv2], axis=1)
conv8 = Convolution2D(64, 3, 1, activation='relu', padding='same')(up8)
conv8 = Convolution2D(64, 3, 1, activation='relu', padding='same')(conv8)
up9 = concatenate([UpSampling2D(size=(2, 2))(conv8), conv1], axis=1)
conv9 = Convolution2D(32, 3, 1, activation='relu', padding='same')(up9)
conv9 = Convolution2D(32, 3, 1, activation='relu', padding='same')(conv9)
conv10 = Convolution2D(1, 1, 1, activation='sigmoid')(conv9)
model = Model(inputs=inputs, outputs=conv10)
print(model.summary())
model.compile(optimizer=Adam(lr=1.0e-5), loss=dice_coef_loss, metrics=[dice_coef])
return model
我知道模型将输入作为(1,512,512),图像的输入是(3,512,512)。我只是一个初学者,我不知道该怎么做。但是,我不想更改模型的结构并希望保持原样。我也不想改变模型输入的形状。所以请给我一些改变图像尺寸的建议,使它们与模型的输入尺寸相匹配!谢谢
解决方案
推荐阅读
- r - 在 r 中返回指标排名
- node.js - 获取 max updatedAt 的 X 值,聚合组
- javascript - 在自定义电子文本编辑器中保存换行符
- node.js - 从 MongoDb 集合中检索前 5 个字段
- firebase - Flutter 应用程序中的辅助 Firebase 项目
- c# - XMLDocument VS XmlReader 更有效地在 C# 中验证格式良好的 XML
- excel - 大家好,我刚开始使用 Excel VBA,有一个启动问题
- r - 匹配具有乘法误差的线性模型的 lm 和 optim 系数估计
- parallel-processing - 在 Java 中“即时”生成并行执行任务
- sitecore - sitecore 媒体库是 DAM 吗?