Keras卷积2D误差

Keras卷积2D误差,keras,Keras,灰度图像(宽12px,高12px)在训练和测试中进行处理,如下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,

灰度图像(宽12px,高12px)在训练和测试中进行处理,如下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].

让我知道如何解决它。

我在进行目标检测时遇到了类似的问题,我发现问题出在一些损坏的图像上。当keras尝试读取图像但图像已损坏时,图像不会加载。因此,它不会为映像抛出错误,而是开始执行操作并失败。所以,在开始模型训练之前,只需检查是否可以成功加载图像。这会给你罪犯的档案。这应该可以解决您的问题。

Keras希望采用如下格式:(样本、行、列、通道),您的格式似乎是(样本、通道、行、列)

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

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