我将开发类似于VGG-19的cnn模型。模型代码如下。
model = Sequential([
#layer set 1 VGG-19
Input(shape=(IMG_HEIGHT, IMG_WIDTH ,3)),
ZeroPadding2D(padding=(1,1), data_format='channels_last'),
Conv2D(64, 3, 3, padding='same', activation='relu', data_format='channels_last'),
ZeroPadding2D(padding=(1,1), data_format='channels_last'),
Conv2D(64, 3, 3, padding='same', activation='relu', data_format='channels_last'),
MaxPooling2D((2,2), strides=(2,2), data_format='channels_last'),
#layer set 2
ZeroPadding2D(padding=(1,1), data_format='channels_last'),
Conv2D(128, 3, 3, padding='same', activation='relu', data_format='channels_last'),
ZeroPadding2D(padding=(1,1), data_format='channels_last'),
Conv2D(128, 3, 3, padding='same', activation='relu', data_format='channels_last'),
MaxPooling2D((2,2), strides=(2,2), data_format='channels_last'),
#layer set 3
ZeroPadding2D(padding=(1,1), data_format='channels_last'),
Conv2D(256, 3, 3, padding='same', activation='relu', data_format='channels_last'),
ZeroPadding2D(padding=(1,1), data_format='channels_last'),
Conv2D(256, 3, 3, padding='same', activation='relu', data_format='channels_last'),
ZeroPadding2D(padding=(1,1), data_format='channels_last'),
Conv2D(256, 3, 3, padding='same', activation='relu', data_format='channels_last'),
ZeroPadding2D(padding=(1,1), data_format='channels_last'),
Conv2D(256, 3, 3, padding='same', activation='relu', data_format='channels_last'),
MaxPooling2D((2,2), strides=(2,2), data_format='channels_last', padding='same'),
#layer set 4
ZeroPadding2D(padding=(1,1), data_format='channels_last'),
Conv2D(512, 3, 3, padding='same', activation='relu', data_format='channels_last'),
ZeroPadding2D(padding=(1,1), data_format='channels_last'),
Conv2D(512, 3, 3, padding='same', activation='relu', data_format='channels_last'),
ZeroPadding2D(padding=(1,1), data_format='channels_last'),
Conv2D(512, 3, 3, padding='same', activation='relu', data_format='channels_last'),
ZeroPadding2D(padding=(1,1), data_format='channels_last'),
Conv2D(512, 3, 3, padding='same', activation='relu', data_format='channels_last'),
MaxPooling2D((2,2), strides=(2,2), data_format='channels_last'),
#layer set output
Flatten(),
Dense(4096, activation='relu'),
Dropout(0.5),
Dense(4096, activation='relu'),
Dropout(0.5),
Dense(1000, activation='softmax')
])
当我建立模型时,会出现以下错误。
Negative dimension size caused by subtracting 2 from 1 for 'max_pooling2d_10/MaxPool' (op: 'MaxPool') with input shapes: [?,1,1,512].
keras 2没有'dim_ordering'属性。因此,我添加了“ data_format”。我该如何解决这个问题?