- A simple feedforward ANN with training using backpropagation and activation functions.
- Real-Time Training Visualizer that visualizes error, gradients, and weights over iterations using a Python script.
- Random Training Data Generator: A Python script to generate random training data in the required format.
- Dual File/Terminal Output Logging.
- A Comprehensive and in depth analysis of my Neural Net implementation is available in a PDF format written in LaTeX.
- To use the Training visualizer simply generate training data using the Training data generation tool, manually build the Neural Net, run the Training visualizer and run the Neural Net, this will initiate the training process using the newly generated data set and the training visualizer will update every 100ms as the Neural Net runs through the entire data set.
- The Training data generation tool allows you to generate N amount of data lines, allows you to edit the topology of the Neural Net as well as the range of the data values.
- C++17 and newer: For building and running the neural network.
- Python 3.x: Required for the visualizer and data generation scripts.
- Matplotlib & Numpy.
Note:
- Build instructions can be found below including installing python, matplotlib and numpy using the Python installer, Homebrew and apt for Windows, MacOS and linux respectively. Other build instructions and compiler flags are included as well.
- Download the latest Python installer from python.org
- Run the installer and check "Add Python to PATH" during setup.
- Verify installation by running in Command Prompt:
python --version
-
Open Terminal and install Python using Homebrew:
brew install python
-
Verify installation:
python3 --version
-
Open Terminal and run:
sudo apt update sudo apt install python3 python3-pip
-
Verify installation:
python3 --version
Once Python is installed, install the required libraries (matplotlib and numpy):
pip install matplotlib numpy
- Clone the repository:
git clone https://github.com/000x999/Neural_Net cd Neural_Net
- Compile and run the program:
Make sure to have 'Make' installed, 'GCC'/'G++' Set your STL C++ header files 'Include' folder path in the CXXFLAGS section inside the Makefile. Simply run 'make' directly in the command line from within the 'Neural_Net' folder. To run any of the two python scripts, be sure to have numpy and matplotlib installed, then simply run 'py [scriptName.py]' directly in the command line