【发布时间】:2017-09-14 12:18:39
【问题描述】:
到目前为止,我已经尝试解决这个问题大约 24 小时,但遗憾的是无法提出问题。
问题很简单:我在 2 个子目录中有 2 个类别,子目录中的图像是 RGB 格式,但我只对绿色通道感兴趣。我使用 flow_from_directory 函数读取了一批图像(图像@ size (3,224,224) )然后我尝试使用 Lambda 层提取绿色通道,如下所示:
def get_model_bw(input_shape=(3,224,224), classes = 2, lr=1e-4):
model = Sequential([
Lambda(lambda x: x[:,1,:,:], input_shape=input_shape, output_shape=(1,224,224)),
BatchNormalization(axis=1),
Conv2D(32,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(32,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(32,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
MaxPooling2D(),
Conv2D(64,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(64,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(64,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
MaxPooling2D(),
Conv2D(128,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(128,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
MaxPooling2D(),
Conv2D(256,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(256,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
MaxPooling2D(),
Conv2D(512,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
Conv2D(512,(3,3), activation='relu',padding='same'),
BatchNormalization(axis=1),
MaxPooling2D(),
Flatten(),
Dense(1000, activation='relu'),
BatchNormalization(),
Dense(1000, activation='relu'),
BatchNormalization(),
Dense(classes, activation='softmax')
])
model.compile(Adam(lr=lr), loss='categorical_crossentropy', metrics=['accuracy'])
return model
model_bw = get_model_bw(input_shape=(3,224,224), classes=2)
但它只是拒绝工作...... 它抛出的错误是:
ValueError Traceback(最近一次调用最后一次) ValueError: Input 0 is in compatible with layer batch_normalization_181: expected ndim=4, found ndim=3
有什么建议吗? 附:我正在使用 Theano 后端和最新的 keras 版本。
我们将不胜感激。
【问题讨论】:
-
请详细说明“拒绝工作”的含义。包括可能的错误消息。
-
您必须发布错误消息,以便人们了解发生了什么。
-
谢谢,我已经添加了错误信息。
标签: deep-learning keras keras-layer