Welcome to the MNIST Training Project! This repository is dedicated to exploring and comparing different neural network architectures, including CNNs (Convolutional Neural Networks), DNNs (Deep Neural Networks), and a pre-trained ResNet model adapted using transfer learning, all using the classic MNIST dataset. The project is containerized with Docker to provide a consistent and reproducible environment for running experiments.
- Docker (GPU support required for NVIDIA GPUs)
- Git (for version control)
To begin, clone this repository to your local machine:
git clone https://github.com/chasekunz/mnist-training.git
cd mnist-training
Build the Docker image using the following command:
docker build -t mnist-training .
This command creates a Docker image named mnist-training
based on the instructions in the Dockerfile
.
Run the Docker container, mounting the code and data directories:
docker run --gpus all -p 8888:8888 -v $(pwd):/usr/src/app mnist-training
This mounts the current directory to /usr/src/app
in the container and forwards port 8888 for Jupyter notebook access.
notebooks/
: Jupyter notebooks for model comparison and data exploration.data/
: Directory for the MNIST dataset.Dockerfile
: Defines the Docker container environment.requirements.txt
: Lists dependencies for the project.
The highlight of this repository is the Jupyter notebooks found in the notebooks/
directory. Here, you'll find detailed and beginner-friendly notebooks that walk you through the process of training and evaluating various neural network models on the MNIST dataset.
We encourage contributions! Please fork the repository and submit pull requests with your enhancements.
This project is open-sourced under the MIT License.