Skip to content

pedropereirahg/mlp

Repository files navigation

MLP

Implements a multilayer perceptron (MLP) with k-fold cross-validation in Octave.

Also compatible with Matlab.

Requirements

  • Octave (v3.6.2) or Matlab (vR2017a)

Usage

You are required to provide the "input" and "output" arguments to the main function. You can optionally add the "verbose" argument.

$ octave main <input-file> <output-file> [<verbose>]

The input file should have the following format (E.g.: config.txt):

path = data/*.txt
data = model.mat
expectedOutput = train_5a_ 0,0,1 train_53_ 0,1,0 train_58_ 1,0,0
nh = 5
nkFold = 5

The data files in the path must be .txt files with one number (a double) per row. Please notice that the expectOutput (variable) contains the output of your MLP. The output file contains the error calculation using a simple mean.

The expected outputs matrix is generated based on the file names. Taking as an example a problem P with three inputs {S, X, Z} in which P = {S, X, Z}. One of the solutions for the problem P is character S. Modeling this problem computationally, we can assume that the three inputs will be an ordered vector [S, X, Z]. Still, to be able to making calculations inside MLP network, we must convert that alphanumeric characters for numbers. For this problem, we choose to represent the letters with significant bits. Finally the character S can be represented by S = [1, 0, 0] array. Following the same logic, the X char would be X = [0, 1, 0] and Z = [0, 0, 1].

S X Z
1 0 0 represents S
0 1 0 represents X
0 0 1 represents Z

Verbose is an boolean: 0 or 1

Docker

You can also use a simple Docker container, following the commands below to build and run it.

$ cd mlp
$ docker build -t pedrogoncalvesk/mlp .
$ docker run --rm -it -v $(pwd):/source pedrogoncalvesk/mlp
octave:1> main('<input-file>', '<output-file>', [<verbose>])




$ docker run --rm -it openmicroscopy/octave                   # Octave shell
$ docker run --rm -it --entrypoint bash openmicroscopy/octave # Bash shell
$ docker run --rm openmicroscopy/octave -h                    # Get octave help
$ docker run --rm openmicroscopy/octave example1.m arg1       # Run the example file
$ docker run --rm -v $(pwd):/source openmicroscopy/octave /source/myfile.m

License

This repository is licensed under MIT License Copyright (c) 2017. See LICENSE for further details.

Free Software, Hell Yeah!

About

Implements an mlp in python.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •