return images, targets_onehot images_train, targets_train = parse_mnist_kaggle("mnist_kaggle/train.csv") images_test, _ = parse_mnist_kaggle("mnist_kaggle/test.csv") n_epochs = 10 batch_size = 20 batcher = Batcher(images_train, targets_train, batch_size) conv = Conv2D(input_shape=images_train.shape[1:], kernel_size=3, n_filters=32) flatten = Flatten(input_shape=conv.output_shape) fc_1 = FC(input_shape=flatten.output_shape, n_neurons=128, activation=ReLU()) fc_2 = FC(input_shape=fc_1.output_shape, n_neurons=10) layers = [ conv, flatten, fc_1, fc_2, ] cnn = CNN(layers=layers, loss=SoftmaxCrossEntropy(), optimizer=SGD(), pred_func=softmax) cnn.check_shape_compatibility(batcher) cnn.train(batcher, n_epochs) predictions = cnn.predict(images_test) submission = np.argmax(predictions, axis=1) submission = pd.DataFrame(submission, columns=["Label"]) submission.index.name = "ImageId" submission.to_csv("mnist_kaggle/submission.csv")