create model

model.add(Dense(input_dim = 12, units = 10, activation='relu', kernel_initializer='uniform'))
model.add(Dense(units = 8, activation='relu', kernel_initializer='uniform'))
model.add(Dense(units = 1, activation='sigmoid', kernel_initializer='uniform'))

print('Training the model...')

Compile model

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

while running the model.fit()

Fit the model

model.fit(X_train,y_train,batch_size=32, epochs=10, verbose=1)

I am getting the Error

ValueError: Error when checking input: expected dense_36_input to have shape (None, 12) but got array with shape (140, 2)

  • $\begingroup$ Your data has a shape of (140, 2 ) instead of 2 we require 12 here. Reshape your data with numpy.reshape $\endgroup$ – Shubham Panchal Apr 25 '19 at 7:03


Input dimetion means how many no of feature or columns your input is supposed to have.

The neural network will try to adjust to this input shape. In your case you have specified input_dim = 12 but in your data (140,2) there are only 2 features or columns.

So there are two options

  1. Set input_dim =2

  2. Reshape input array to in multiples of specified input dim i..e 12.

In your case ONLY option 1 works because (140,2) cannot be reshaped in multiples of 12.

Note:: other valid input_dim for you can be 14 (reshape input to (20,14)), 10 (reshape input to (28,10))


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.