# 1 input layer of size 64 (the images are 8x8 gray pixels) # 1 hidden layer of size 100 # 1 output layer of size 10 (the labels of digits are 0 to 9) nn = ANN([784, 300, 10]) # see how long training takes startTime = time.time() # train it nn.train2(30, X_train_l, labels_train_l, 100000, step_cb) elapsedTime = time.time() - startTime print("Training took {0} seconds".format(elapsedTime)) # serialize and save the ANN nn.serialize(nn, serialized_name) # compute the predictions predictions = [] for i in range(X_test.shape[0]): o = nn.predict(X_test[i]) # the inverse of the binarization would be taking the maximum argument index # ex: [.1 .1 .1 .1 .9 .1 .1 .1 .1 .1] -> 4 # ex: [.1 .1 .1 .1 .1 .1 .1 .9 .1 .1] -> 7 predictions.append(np.argmax(o)) # compute a confusion matrix print("confusion matrix") print(confusion_matrix(y_test, predictions))