Amit
Amit

Reputation: 11

How to fix this error using Maxpooling in CNN?

The last two maxPooling, are not working. THE CODE:

input_shape = (48,48,1)
output_class = 7

model = Sequential()
   model.add(Conv2D(128, kernel_size=(3,3), activation='relu', input_shape=input_shape)) 
   model.add(BatchNormalization())
   model.add(MaxPooling2D(pool_size=(2,2)))
   model.add(Dropout(0.4))


   model.add(Conv2D(256, kernel_size=(3,3), activation='relu'))
   model.add(BatchNormalization())
   model.add(MaxPooling2D(pool_size=(2,2)))
   model.add(Dropout(0.4))


   model.add(Conv2D(512, kernel_size=(3,3), activation='relu'))
   model.add(BatchNormalization())
   model.add(MaxPooling2D(pool_size=(2,2)))
   model.add(Dropout(0.4))

   model.add(Conv2D(512, kernel_size=(3,3), activation='relu'))
   model.add(BatchNormalization())
   model.add(MaxPooling2D(pool_size=(2,2)))
   model.add(Dropout(0.4))`
   model.add(Flatten())
   model.add(Dense(512, activation='relu'))
   model.add(BatchNormalization())
   model.add(MaxPooling2D(pool_size=(2,2),data_format='channels_last', 
   input_shape=input_shape,padding='same')) #ERROR

   model.add(Dropout(0.4))
   model.add(Dense(256, activation='relu', input_shape=input_shape)) 
   model.add(BatchNormalization())
   model.add(MaxPooling2D(pool_size=(2,2)))` #ERROR
   model.add(Dropout(0.3))


   model.add(Dense(output_class, activation='softmax'))
   model.compile(optimizer='adam', loss='categorical_crossentropy', metrics='accuracy')

ERROR :

ValueError: Input 0 of layer "max_pooling2d_178" is incompatible with the layer: expected ndim=4, found ndim=2. Full shape received: (None, 512)

I have tried searching for an answer and other solutions on the internet. to no success.

without running that line of MaxPooling, the code runs successfully.

Upvotes: 1

Views: 18

Answers (0)

Related Questions