title: expected conv2d_1_input to have shape (28, 28, 1) but got array with shape (1, 28, 28)
body: <p>So i'm using the mnist example on keras and I am trying to predict a digit of my own. I'm really struggling with how I can match the dimension sizes as I cant seem to find a way to resize my image to have the rows and columns after the image no. I've tried resizing with via numpy however I just get error after error...</p>
  
  <p>The code</p>
  
  <pre><code>from __future__ import print_function
  import keras
  from keras.datasets import mnist
  from keras.models import Sequential
  from keras.layers import Dense, Dropout, Flatten
  from keras.layers import Conv2D, MaxPooling2D
  from keras import backend as K
  import numpy as np
  import cv2
  
  batch_size = 20
  num_classes = 10
  epochs = 1
  img_rows, img_cols = 28, 28
  
  (x_train, y_train), (x_test, y_test) = mnist.load_data()
  
  print("Processing image")   
  im = cv2.imread('C:/Users/Luke/pic4.png', 0) #loading the image
  print(im.shape) #28*28
  im = cv2.resize(im,  (img_rows, img_cols)) 
  
  
  
  list = [im]
  
  
  batch = np.array([list for i in range(1)])   
  print(batch.shape)#1*28*28
  batch = batch.astype('float32')
  batch /= 255
  
  if K.image_data_format() == 'channels_first':
      x_train = x_train.reshape(x_train.shape[0], 1, img_rows, img_cols)
      x_test = x_test.reshape(x_test.shape[0], 1, img_rows, img_cols)
      input_shape = (1, img_rows, img_cols)
  else:
      x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)
      x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)
      input_shape = (img_rows, img_cols, 1)
  
  #print("x_train shape")     
  
  x_train = x_train.astype('float32')
  x_test = x_test.astype('float32')
  x_train /= 255
  x_test /= 255
  
  y_train = keras.utils.to_categorical(y_train, num_classes)
  y_test = keras.utils.to_categorical(y_test, num_classes)
  
  def base_model():
      model = Sequential()
      model.add(Conv2D(32, kernel_size=(3, 3),
                   activation='relu',
                   input_shape=input_shape))
      model.add(Conv2D(64, (3, 3), activation='relu'))
      model.add(MaxPooling2D(pool_size=(2, 2)))
      model.add(Dropout(0.25))
      model.add(Flatten())
      model.add(Dense(128, activation='relu'))
      model.add(Dropout(0.5))
      model.add(Dense(num_classes, activation='softmax'))
  
      model.compile(loss=keras.losses.categorical_crossentropy,
                optimizer=keras.optimizers.Adadelta(),
                metrics=['accuracy'])
  return model
  
  cnn_m = base_model()
  cnn_m.summary()
  
  
  print("Predicting image")
  cnn_m.predict(batch)
  print("Predicted image")
  </code></pre>
  
  <p>Error</p>
  
  <pre><code>$ python mnist_cnn_test.py
  Using TensorFlow backend.
  
  x_train shape: (60000, 28, 28, 1)
  60000 train samples
  10000 test samples
  _________________________________________________________________
  Layer (type)                 Output Shape              Param #
  =================================================================
  conv2d_1 (Conv2D)            (None, 26, 26, 32)        320
  _________________________________________________________________
  conv2d_2 (Conv2D)            (None, 24, 24, 64)        18496
  _________________________________________________________________
  max_pooling2d_1 (MaxPooling2 (None, 12, 12, 64)        0
  _________________________________________________________________
  dropout_1 (Dropout)          (None, 12, 12, 64)        0
  _________________________________________________________________
  flatten_1 (Flatten)          (None, 9216)              0
  _________________________________________________________________
  dense_1 (Dense)              (None, 128)               1179776
  _________________________________________________________________
  dropout_2 (Dropout)          (None, 128)               0
  _________________________________________________________________
  dense_2 (Dense)              (None, 10)                1290
  =================================================================
  Total params: 1,199,882
  Trainable params: 1,199,882
  Non-trainable params: 0
  _________________________________________________________________
  Predicting image
  Traceback (most recent call last):
    File "mnist_cnn_test.py", line 100, in &lt;module&gt;
      cnn_m.predict(batch)
    File "C:\Python35\lib\site-packages\keras\models.py", line 1027, in predict
  steps=steps)
    File "C:\Python35\lib\site-packages\keras\engine\training.py", line 1782, in predict
      check_batch_axis=False)
    File "C:\Python35\lib\site-packages\keras\engine\training.py", line 120, in _standardize_input_data
  str(data_shape))
  ValueError: Error when checking : expected conv2d_1_input to have shape (28, 28, 1) but got array with shape (1, 28, 28)
  </code></pre>