ValueError: Input 0 is incompatible with layer conv1_1: expected ndim=4, found ndim=3
def createNetwork():
odel_vgg = Sequential()
model_vgg.add(Conv2D(64,3,strides= (1,1),input_shape = (img_width, img_height), activation='relu', name='conv1_1'))
# model_vgg.add(ZeroPadding2D((1, 1)))
# model_vgg.add(Convolution2D(64, 3, 1, activation='relu', name='conv1_2'))
model_vgg.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2), data_format = 'channels_last'))
model_vgg.add(Conv2D(128,3,strides= (1,1), activation='relu', name='conv2_1'))
# model_vgg.add(ZeroPadding2D((1, 1)))
# model_vgg.add(Convolution2D(128, 3, 1, activation='relu', name='conv2_2'))
model_vgg.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2),data_format ='channels_last'))
# model_vgg.add(keras.layers.ActivityRegularization(l1=0.0, l2=1.0))
model_vgg.add(Conv2D(256, 3,strides= (1,1), activation='relu', name='conv3_1'))
# model_vgg.add(ZeroPadding2D((1, 1)))
# model_vgg.add(Convolution2D(256, 3,1, activation='relu', name='conv3_2'))
# model_vgg.add(ZeroPadding2D((1, 1)))
# model_vgg.add(Convolution2D(256, 3, 3, activation='relu', name='conv3_3'))
model_vgg.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2),data_format = 'channels_last'))
model_vgg.add(Conv2D(512, 3,strides= (1,1), activation='relu', name='conv4_1'))
# model_vgg.add(ZeroPadding2D((1, 1)))
# model_vgg.add(Convolution2D(512, 3, 1, activation='relu', name='conv4_2'))
# model_vgg.add(ZeroPadding2D((1, 1)))
# model_vgg.add(Convolution2D(512, 3, 1, activation='relu', name='conv4_3'))
model_vgg.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2),data_format = 'channels_last'))
model_vgg.add(Conv2D(512,3,strides= (1,1), activation='relu', name='conv5_1'))
model_vgg.add(Conv2D(512,3,strides= (1,1), activation='relu', name='conv5_2'))
# model_vgg.add(ZeroPadding2D((1, 1)))
# model_vgg.add(Convolution2D(512, 3, 1, activation='relu', name='conv5_3'))
model_vgg.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2),data_format = 'channels_last'))
#model_vgg.add(Flatten())
model_vgg.add(Dense(64, activation='relu'))
model_vgg.add(Dropout(0.5))
model_vgg.add(Dense(1, activation='sigmoid'))
model_vgg.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
model_vgg.summary(line_length = None, positions = None, print_fn = print)
return model_vgg;You have to use input_shape = (img_width, img_height, 1) to indicate that it is a grayscale image, meaning one channel.
ValueError: Error when checking input: expected conv1_1_input to have 4 dimensions, but got array with shape (12025, 32, 32)