expected input to have 4 dimensions, but got array with shape

user3768070 picture user3768070 · Feb 14, 2018 · Viewed 15k times · Source

I have this error

Error when checking input: expected input_13 to have 4 dimensions, but got array with shape (7, 100, 100)

For the following code how should I reshape array to fit with 4-dimensions, I searched for it but didn't understand the previous solutions. Please ask if not clear its very common issue in convolution neural network.

inputs=Input(shape=(100,100,1))

x=Conv2D(16,(3,3), padding='same')(inputs)
x=Activation('relu')(x)
x=Conv2D(8,(3,3))(x)
x=Activation('relu')(x)
x=MaxPooling2D(pool_size=(2,2))(x)
x=Dropout(0.2)(x)
x=Dense(num_classes)(x)
x=Activation('softmax')(x)
output=Activation('softmax')(x)
model=Model([inputs], output)

Answer

Marcin Możejko picture Marcin Możejko · Feb 14, 2018

If x is your data array you should simply apply the following transformation:

x = x.reshape((-1, 100, 100, 1))