A project built around the framework proposed in: Continual Learning with Deep Generative Replay. The goal of this approach is to develop a single model that can achieve high accuracy on two independent tasks.
In this project, the first task is image classification on the MNIST dataset and the second task is image classification on the SVHN (Street View House Numbers) dataset.
A full breakdown of this project, how it works, and the intuition behind it is available in the article.
First Scholar (MNIST Classification):
- Train the Generator on the MNIST dataset →
mnist_generator.ipynb
- Load the trained Generator to output 30k fake MNIST images →
generated_mnist_dataset.ipynb
- Train the Solver on the MNIST dataset →
mnist_solver.ipynb
- Use the trained Solver to output image labels for the 30k fake MNIST images →
mnist_solver.ipynb
Second Scholar (SHVN + MNIST Classification):
- Train the Generator, 50% on the SHVN dataset and 50% on the 30k fake MNIST images →
shvn_generator.ipynb
- Train the Solver, 50% on the SHVN dataset and 50% on the fake MNIST dataset (images + labels) →
shvn_solver.ipynb
The final CNN (Second Solver) achieved an accuracy of about 90% when tested on both MNIST and SHVN images.