Splitting the data
Do not forget to split your data into training and test sets before training the model as shown in the following:
train_set = data[(data.Usage == 'Training')] test_set = data[(data.Usage != 'Training')] X_train = np.array(map(str.split, train_set.pixels), np.float32) X_test = np.array(map(str.split, test_set.pixels), np.float32) (X_train.shape, X_test.shape) ((28273, 2304), (7067, 2304)) 48*48 2304 X_train = X_train.reshape(28273, 48, 48, 1) X_test = X_test.reshape(7067, 48, 48, 1) (X_train.shape, X_test.shape) ((28273, 48, 48, 1), (7067, 48, 48, 1)) num_train = X_train.shape[0] num_test = X_test.shape[0] (num_train, num_test) (28273, 7067)
Converting labels to categorical:
from keras.utils import np_utils # utilities for one-hot encoding of ground truth values Using TensorFlow backend. y_train = train_set.emotion y_train = np_utils.to_categorical(y_train, num_classes) y_test = test_set.emotion y_test = np_utils.to_categorical(y_test, num_classes)