# select training, validation set
train_rand_idxs = np.random.choice(50000, 700)
val_rand_idxs = np.random.choice(10000, 300)
data_train = data_train[train_rand_idxs]
label_train = label_train[train_rand_idxs]
data_val = data_val[val_rand_idxs]
label_val = label_val[val_rand_idxs]
# convert to 'one-hot' encoding for label data
label_train = np_utils.to_categorical(label_train)
label_val = np_utils.to_categorical(label_val)
label_test = np_utils.to_categorical(label_test)
# Build model
model = Sequential()
model.add(Dense(units=2, input_dim=28*28, activation='relu'))
model.add(Dense(units=10, activation='softmax'))
# units = dimensionality of the output space
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
# see https://keras.io/losses/, https://keras.io/optimizers/
# conduct learn
hist = model.fit(data_train, label_train, epochs=1000, batch_size=10, validation_data=(data_val, label_val))