/mml

Neural network implementation in c from scratch

Primary LanguageCMIT LicenseMIT

mml

Simple machine learning project written in pure c.

Features

  • Basic neural network implementation
  • Back propagation
  • RMSProp optimizer
  • Datasets
  • Max pooling
  • Flatten
  • Convolution?

Dependencies

# for loading images into matrices
sudo apt install zlib1g-dev
sudo apt install libpng-dev

Usage

Logic gates

./run.sh logic_gates

# output
Select a test:
1. and
2. or
3. xor
1
epoch 0 loss 1.322414
...
epoch 990 loss 0.000118
0 0: 0.000014
0 1: 0.000245
1 0: 0.007272
1 1: 0.992032

SMALL MNIST

Currently only a flatten and then dense network. We are basically looking if the number is lower than 5 or not.

./run.sh conv

# output
training...
epoch 0 loss 3.279951
...
epoch 2990 loss 0.043303
trained
output1:
1 1
0.964929

output9:
1 1
0.047376

TESTS

./run.sh test

If you see any red text, it means one of the tests failed.