diff --git a/README.md b/README.md new file mode 100644 index 0000000..07fb02a --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# Multi-Layer Perceptron + +This is a Python 3 implementation of a multi-layer perceptron using Numpy and optionally Matplotlib for cost function visualization. + +It is provided under GPLv3 licence. + +It implements forward-propagation and backward-propagation (gradient descent). + +It allows to learn examples and trying to minimize cost function. + +It provides also Momentum optimization, RMSProp optimization, Adam optimization and Forbenius norm regularization. + +Note: I developed this only to implement myself the algorithms for fun and not for any production purpose. I already coded MLPs years ago in C and in C++. + +I tested it with images of characters (in PGM format) extracted from a scanned image with an other program I developed many years ago in C++ but very dirty so I don't provide it. + +I provide the jupyter notebook I used for some tests. diff --git a/letters.py b/letters.py index ce0776b..ccba64f 100644 --- a/letters.py +++ b/letters.py @@ -1,3 +1,6 @@ +__author__ = "Adel Daouzli" +__licence__ = "GPLv3" + import os from pnmimage import PnmImage diff --git a/mlp.py b/mlp.py index a829a8d..f187e96 100644 --- a/mlp.py +++ b/mlp.py @@ -1,5 +1,8 @@ #!/usr/bin/env python3 +__author__ = "Adel Daouzli" +__licence__ = "GPLv3" + import struct import numpy as np try: diff --git a/pnmimage.py b/pnmimage.py index 4483c1c..f58033d 100644 --- a/pnmimage.py +++ b/pnmimage.py @@ -1,3 +1,6 @@ +__author__ = "Adel Daouzli" +__licence__ = "GPLv3" + import struct class PnmImage(object):