Here are the assignments I have finished for the class:
- Assignment 1: Preprocess notMNIST data and train a simple logistic regression model on it
- Assignment 2: Train a fully-connected network using Gradient Descent and Stochastic Gradient Descent
- Assignment 3: Use regularization techniques to improve a deep learning model
- Assignment 4: Design and train a Convolutional Neural Network
- Assignment 5: Train a skip-gram model on Text8 data and visualize the output
- Assignment 6: Train a Long Short-Term Memory network to predict character sequences
This is an outcome of one of the assignments, a t-SNE projection of word vectors, clustered by similarity.
Installation and setup
Since the datasets are loaded in memory, 4 GB of RAM are short to run the notebooks, 8 GB will be more comfortable. The instructions are given for Mac OS, but it works on Linux as well.
I recommend to install the Python bundle Anaconda. All the assignments have been done with Python 2.7, so download the installation script accordingly. You can then install Jupyter Notebook from
The next step is to install TensorFlow. At the time of writing, the latest release is r0.9, after several upgrades during the course. You can refer to the official documentation. Here is the list of commands:
$ conda create -n tensorflow python=2.7 $ source activate tensorflow (tensorflow)$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/tensorflow-0.9.0-py2-none-any.whl (tensorflow)$ pip install --upgrade --ignore-installed $TF_BINARY_URL
You can now grab the assignments from here to run my code or the stubs from the TensorFlow repository. All the other prerequisites (like
numpy) have to be installed on the fly.
From the repository root, start the Notebook server with
- all the assignments come from Udacity and the TensorFlow repository
- the weird fonts dataset used for this image recognition is the notMNIST dataset from Yaroslav Bulatov (there are also a download mirrors for the large and small dataset)
- the final neural network of the assignment #4 is loosely inspired by the notorious LeNet-5, as described in the research paper "Gradient-Based Learning Applied to Document Recognition" by Y. LeCun, L. Bottou, Y. Bengio and P. Haffner