drkostas / Numpy-NeuralNet-1

A Vanilla Numpy-only Feed-Forward Neural Network.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

COSC525: Project 1: Artificial Neural Networks

GitHub license

Table of Contents

About

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.

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.8 -V
Python 3.8.2

$ echo $SHELL
/usr/bin/zsh

Installing the requirements

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

Running the code

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.

Execution Options

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

$ conda activate cosc525_project1

$ 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 -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

TODO

Read the TODO to see the current task list.

License

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

About

A Vanilla Numpy-only Feed-Forward Neural Network.

License:Apache License 2.0


Languages

Language:Python 88.9%Language:Makefile 11.1%