/home/shalen

MNIST digit recognizer

Draw a digit between 0 and 9

The neural network believes it is a

    What is this?

    In short, my "Hello world!" to the world of Rust, deep learning and Web Assembly.

    I wrote my own deep learning framework from scratch in Rust, without using any external libraries, and used it to train a deep learning model capable of recognizing a single hand-written digit. The model itself is composed by affine layers, sigmoid activation functions and a final softmax layer, and was trained on the well-known MNIST dataset. A data augmentation step was performed as part of the training process, applying a suitable and random affine transformation to the images before presenting them to the network.

    After training the model, I wrote a wrapper around it in Rust and compiled the result to Web Assembly. I finally embedded the result in this page.