Handwriting Recognition in C++

Welcome to the Handwriting Recognition project, an educational initiative to explore neural networks using the MNIST dataset in modern C++. This project demonstrates memory-safe programming practices and leverages state-of-the-art C++ features. For an in-depth look at the underlying memory models and safety mechanisms, check out my blog post on C++ memory models.

The code for this project can be found on Github.

Overview

This project aims to:

  • Familiarize with neural networks and handwriting recognition.
  • Utilize modern C++ for enhanced performance and memory safety.
  • Provide a modular and maintainable codebase that leverages best practices in C++.

The project uses the popular MNIST dataset to train and test a neural network that recognizes handwritten digits.

Features

  • Modern C++ Implementation: Built with modern C++ standards for robust and efficient code.
  • Memory Safety: Focus on secure memory management and performance.
  • Configurable Training: Easily adjustable parameters via a configuration file.
  • OpenMP Support: Optional OpenMP support for enhanced parallelism during training.