I am using CNN to do an image recognition task. While I encounter some problem when fitting. The error reports that Input 0 of layer "sequential_2" is incompatible with the layer: expected shape=(None, 256, 256, 1), found shape=(None, 65536).
However, I checked my X_train shape which is (4030, 256, 256, 1), and my y_test shape is (4030, 7).
Here below is my CNN architecture:
model = Sequential()
model.add(Conv2D(64,input_shape=(256,256,1),kernel_size=(5,5),activation='relu',padding='same'))
model.add(Dropout(0.25))
model.add(Conv2D(32,kernel_size=(5,5),activation='relu',padding='same'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.15))
model.add(Conv2D(32,kernel_size=(5,5),activation='relu',padding='same'))
model.add(MaxPooling2D(pool_size=(3, 3)))
model.add(Dropout(0.25))
model.add(Conv2D(32,kernel_size=(5,5),activation='relu',padding='same'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.5))
model.add(GlobalAveragePooling2D())
model.add(Flatten())
model.add(Dense(128,activation='relu'))
model.add(Dropout(0.25))
model.add(Dense(7,activation='softmax'))
model.summary()
model.compile(loss='categorical_crossentropy',
metrics=['accuracy'],
optimizer=RMSprop(lr=0.001))
#optimizer='adam')
and
epochs=150
batch_size=40
history=model.fit(X_train,y_train,
epochs=epochs,batch_size=batch_size,
validation_data=(X_test,y_test))
Can someone help me figure it out?
It looks like you are reshaping the X_train or the X_test somewhere in your code that you have not shared. Double check both.