Homework 9: Variational Autoencoders



Wednesday 4/24/19, 11:59 PM CST


This homework focuses on evaluating variational autoencoders applied to the MNIST dataset.


Submission will be through gradescope.

Code and External Libraries

The assignment involves PyTorch, so it must be done using Python only.

You may use any third-party code for the variational autoencoder. But for the rest part of the assignment, you are expected to write your own code.


Total points: 100

An autoencoder is a type of artificial neural network used to learn efficient data codings in an unsupervised manner. Variational autoencoder (VAE) models inherit the autoencoder architecture, but make strong assumptions concerning the distribution of latent variables. You can use this post as a reference.

You have two options for this assignment:

Train this autoencoder on the MNIST dataset. Use only the MNIST training set for training.

Now determine how well the codes produced by this autoencoder can be interpolated. Use only the MNIST test set for this.


Submit to gradescope:

A PDF file (named "{yournetid}_HW9.pdf") containing the following:

  1. (45 points) Page 1: Same digit interpolates (Make your figure large!)
  2. (45 points) Page 2: Different digit interpolates (Make your figure large!)
  3. (10 points) Page 3+: Your code.