Project 1 for the Deep Learning course (COSC 525). Involves the development of a Neural Network.
The main code is located in the main.py file. The Neuron, FullyConnectedLayer, and NeuralNetwork classes are located in the src folder.
These instructions will get you a copy of the project up and running on your local machine.
You need to have a machine with Python > 3.6 and any Bash based shell (e.g. zsh) installed.
$ python3.8 -V
Python 3.8.2
$ echo $SHELL
/usr/bin/zsh
All the installation steps are being handled by the Makefile. You can either use conda or
venv by setting the flag env=<conda|venv>
. To load an env file use the
flag env_file=<path to env file>
Before installing everything, make any changes needed in the settings.ini file.
Then, to create a conda environment, install the requirements, setup the library and run the tests execute the following command:
$ make install
In order to run the code, you will only need to change the yml file if you need to, and either run its file directly or invoke its console script.
First, make sure you are in the correct virtual environment:
$ conda activate cosc525_project1
$ which python
/home/<user>/anaconda3/envs/src/bin/python
Now, in order to run the code you can call the main.py directly.
$ python main.py -h
usage: main.py -d DATASET -n NETWORK -c CONFIG_FILE [-l LOG] [-h]
Project 1 for the Deep Learning class (COSC 525). Involves the development of a FeedForward Neural Network.
Required Arguments:
-d DATASET, --dataset DATASET
The datasets to train the network on. Options (defined in yml): [and, xor, class_example]
-n NETWORK, --network NETWORK
The network configuration to use. Options (defined in yml): [1x1_net, 2x1_net, 2x2_net]
-c CONFIG_FILE, --config-file CONFIG_FILE
The path to the yaml configuration file.
Optional Arguments:
-l LOG, --log LOG Name of the output log file
-h, --help Show this help message and exit
Read the TODO to see the current task list.
This project is licensed under the Apache License - see the LICENSE file for details.