/Numpy-CNN

A Vanilla Numpy-only Convolutional Neural Network.

Primary LanguagePythonApache License 2.0Apache-2.0

COSC525: Project 2: Convolutional Neural Networks

GitHub license

Table of Contents

About

Project 2 for the Deep Learning course (COSC 525). Involves the development of a Convolutional Neural Network.

The main code is located in the main.py file. The Neuron, FullyConnectedLayer, and NeuralNetwork classes are located in the src folder.

Getting Started

These instructions will get you a copy of the project up and running on your local machine.

Prerequisites

You need to have a machine with Python > 3.6 and any Bash based shell (e.g. zsh) installed.

$ python3.7 -V
Python 3.7

$ echo $SHELL
/usr/bin/zsh

Installing the requirements

Using the Makefile

All the installation steps are being handled by the Makefile.

Then, to create a conda environment, install the requirements, setup the library and run the tests execute the following commands:

$ make create_env
$ conda activate cosc525_project2
$ make requirements

Manual Installations

For manual installation, you can create a virtual environment and install the requirements by executing the following commands:

$ conda create -n cosc525_project2 -y python=3.7
$ conda activate cosc525_project2
$ conda install --file requirements.txt -y

Running the code

Execution Options

First, make sure you are in the correct virtual environment:

$ conda activate cosc525_project2

$ which python
/home/<user>/anaconda3/envs/src/bin/python

main.py

Now, in order to run the code you can call the main.py directly.

$ python main.py -h
usage: main.py -d DATASET [-h]

Project 2 for the Deep Learning class (COSC 525). Involves the development 
of a Convolutional Neural Network.

Required Arguments:
  -d DATASET, --dataset DATASET
                        The datasets to train the network on. Options: [example1, example2, example3]

Optional Arguments:
  -h, --help            Show this help message and exit

License

This project is licensed under the Apache License - see the LICENSE file for details.