This project is an investigation into how Artificial Neural Networks (ANNs) work and their applications in Image Recognition, by documenting all theory behind the project and developing applications of the theory, that allow for experimentation via a GUI. The ANNs are created without the use of any 3rd party Machine Learning Libraries and I currently have been able to achieve a prediction accuracy of 99.6% on the MNIST dataset. The report for this project is also included in this repository.
-
Download the Repository with:
-
git clone https://github.com/mcttn22/school-project.git
- Or by downloading as a ZIP file
-
-
Create a virtual environment (venv) with:
- Windows:
python -m venv {venv name}
- Linux:
python3 -m venv {venv name}
- Windows:
-
Enter the venv with:
- Windows:
.\{venv name}\Scripts\activate
- Linux:
source ./{venv name}/bin/activate
- Windows:
-
Enter the project directory with:
cd school-project/
-
For normal use, install the dependencies and the project to the venv with:
- Windows:
python setup.py install
- Linux:
python3 setup.py install
- Windows:
Note: In order to use an Nvidia GPU for training the networks, the latest Nvdia drivers must be installed and the CUDA Toolkit must be installed from here.
Run with:
- Windows:
python school_project
- Linux:
python3 school_project
Install the dependencies and the project to the venv in developing mode with:
- Windows:
python setup.py develop
- Linux:
python3 setup.py develop
Run Tests with:
- Windows:
python -m unittest discover .\school_project\test\
- Linux:
python3 -m unittest discover ./school_project/test/
Use Docker with:
- Build the Docker Image with:
sudo docker build -t mcttn22/school-project ./
- Run the Docker Image with:
sudo apt-get install x11-xserver-utils xhost + sudo docker run -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY mcttn22/school-project
Compile Project Report PDF with:
make all
Note: This requires the Latexmk, pdflatek and Pygments libraries