Keras卷积2D错误

时间:2018-08-02 05:43:10

标签: keras

灰度图像(宽12像素,高12像素)在培训和测试中按照Keras中的以下代码进行处理。

model.add(Convolution2D(32, 3, 3, border_mode='same', input_shape=(1,12,12)))
model.add(Activation("relu"))
model.add(Convolution2D(32, 3, 3))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2), border_mode=("same")))
model.add(Dropout(0.25))

但是,错误发生如下。

tensorflow.python.framework.errors_impl.InvalidArgumentError: Negative dimension size caused by subtracting 3 from 1 for 'conv2d_2/convolution' (op: 'Conv2D') with input shapes: [?,1,12,32], [3,3,32,32].

让我知道如何解决它。

2 个答案:

答案 0 :(得分:0)

当进行对象检测时,我遇到了类似的问题,而我发现的问题是一些损坏的图像。当keras尝试读取图像但被损坏时,不会加载该图像。因此,它不会引发图像错误,而是开始执行操作并失败。因此,在开始模型训练之前,只需检查您是否可以成功加载图像即可。这将为您提供罪魁祸首文件。这应该可以解决您的问题。

答案 1 :(得分:0)

Keras希望使用以下格式:(样本,行,列,列,通道),您的格式似乎是(样本,通道,行,列,列)。

尝试使用可选参数data_format指定数据格式,如下所示:

model.add(Convolution2D(32, 3, 3, border_mode='same', input_shape=(1,12,12), data_format = 'channels_first'))