NOTE: Only the software portion can be done in teams of up to three people, your report should be your own work.
Handing in assignment on compass:
- Report in pdf format. File name should be net_id_hw5_report (e.g. yeh17_hw5_report.pdf)
- Code for both code-from-scratch and TensorFlow in TGZ or ZIP format. File name should be net_id_hw5_code (e.g. yeh17_hw5_code.zip)
- Include your team members' name in the submission description and report.
- Make sure the uploaded file is correct. Missing or corrupted files will be considered late. (You can download the uploaded file to verify)
Data
MNIST handwritten digit database [Link]. Tensorflow also has an API for loading and downloading the data. LinkSoftware Requirements
- Do NOT use ipython notebook.
- Modularized your code, a single script code is difficult to read.
- Use a relative path when accessing data. Clearly write in the README file where to store the data relative to the base directory.
TensorFlow
In this portion of the assignment, you will use a vanilla RNN and a LSTM to perform digit classification on the MNIST dataset.- Setting 1 (Sequence of Pixels): It is assumed that each $28 \times 28$ image, $x$, in the MNIST dataset is a sequence of single pixels, $x(1), x(2), ... x(784)$, where $x(t)$ is a single scalar value. The network reads one pixel at a time from the top left corner of the image to the bottom right of the image. Note: If you are running out of memory, you can downsample the image to $14 \times 14$ or $7 \times 7$, just report what image size you used in the report.
- Setting 2 (Sequence of Columns): It is assumed that each $28 \times 28$ image, $x$, in the MNIST dataset is a sequence of vectors, $x(1), x(2), ... x(28)$, where $x(t)$ is a $28 \times 1$ vector representing one column in the image. The network reads one column at a time from left to right.
Revelant Tensorflow Doc:
Tensorflow provides some API for recurrent neural network, please use the following: What to turn in:
- Methods:
- Describe the functions you wrote, and the overall structure of your code.
- Results:
- Provide one figure with four subfigures, showing convergence plots of all four (2 settings, 2 models) classifiers (abscissa = training iteration, ordinate = mini-batch training-corpus accuracy)
- Provide a table reporting the testing accuracies.
- Code: Submit an auxiliary TGZ or ZIP file containing your code. Don't include the TensorFlow source. Note: A README.txt describing how to run your code should be included in the zip file