No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data
src
CMakeLists.txt
LICENSE
README.md

README.md

Artificial neural network

Three machine learning algorithms connected with artificial neural networks are implemented in this project:

  1. Rosenblatt’s perceptron
  2. Neural network with fully-connected layers (multilayer perceptron, MLP)
  3. Convolutional neural network (CNN)

How to build this project

In order to build this project, you need to have cmake and C++ compiler (project is written for gcc, for successful build with another compiler you may have to change CMakeLists.txt) installed. All the following instructions are written for Linux and the like. You may use Cygwin under Windows to build this project, but some similar steps may be done for building with VS.

  1. mkdir bin — create directory for building the project.
  2. cd bin
  3. cmake .. — generate Makefile using CMakeLists.txt located in the root of the project.
  4. make — execute generated Makefile using make utility.

MNIST

MNIST is a large dataset consisting of images of handwritten digits. You can get more info about it on wiki and on the MNIST's own page. In order to download it, issue the following commands:

$ cd data
$ mkdir mnist
$ cd mnist
$ wget http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
$ wget http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz
$ wget http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz
$ wget http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz
$ gunzip ./*
$ cd ../../

In order to train simple MLP on this data, run ./bin/mnist. To train convolutional neural network, run ./bin/conv_nn_test.