title: How to prepare multiple RGB images as numpy array for CNN
body: <p>I want to use the code below with my own input images instead of the mnist images.  However I am having a hard time inputting several color .jpg images into a numpy array similar to the X_train used in the code below.  I have a folder called data with another folder called train that includes several images that I would like to use as my X_train.  I can generate the labels for them and one-hot encode them.  I just don't know how to make all my images go into a nice array like X_train. Help?  I did look <a href="https://stackoverflow.com/questions/41531843/reading-multiple-rgb-images-to-numpy-array">here</a>, but I got a Value Error: setting an array element with a sequence when I just copied and pasted the summarized code. </p>
  
  <pre><code>import numpy as np
  np.random.seed(123)  # for reproducibility
  
  from keras.models import Sequential
  from keras.layers import Dense, Dropout, Activation, Flatten
  from keras.layers import Convolution2D, MaxPooling2D
  from keras.utils import np_utils
  from keras.datasets import mnist
  
  # 4. Load pre-shuffled MNIST data into train and test sets
  (X_train, y_train), (X_test, y_test) = mnist.load_data()
  
  # 5. Preprocess input data
  X_train = X_train.reshape(X_train.shape[0], 1, 28, 28)
  X_test = X_test.reshape(X_test.shape[0], 1, 28, 28)
  X_train = X_train.astype('float32')
  X_test = X_test.astype('float32')
  X_train /= 255
  X_test /= 255
  
  # 6. Preprocess class labels
  Y_train = np_utils.to_categorical(y_train, 10)
  Y_test = np_utils.to_categorical(y_test, 10)
  
  # 7. Define model architecture
  model = Sequential()
  
  model.add(Convolution2D(32, 3, 3, activation='relu', input_shape=(1,28,28)))
  model.add(Convolution2D(32, 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(10, activation='softmax'))
  
  # 8. Compile model
  model.compile(loss='categorical_crossentropy',
                optimizer='adam',
                metrics=['accuracy'])
  
  # 9. Fit model on training data
  model.fit(X_train, Y_train, 
            batch_size=32, nb_epoch=10, verbose=1)
  
  # 10. Evaluate model on test data
  score = model.evaluate(X_test, Y_test, verbose=0)
  </code></pre>