Coder Social home page Coder Social logo

informaticacba / php-fann Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bukka/php-fann

1.0 0.0 0.0 269 KB

PHP wrapper for FANN (Fast Artificial Neural Network Library)

License: Other

PHP 37.35% C 61.64% Awk 0.16% JavaScript 0.21% M4 0.64%

php-fann's Introduction

PHP FANN wrapper

This is a PHP wrapper for FANN (Fast Artificial Neural Network) library.

API

The API is documented on http://www.php.net/manual/en/book.fann.php where is the complete documentation for PHP FANN.

The API is very similar to the official FANN C API. Just functions for fixed fann_type have not been mapped because PHP always support float. In addition unnecessary arguments for some functions have been left out (for example array length that is not necessary for PHP arrays).

Installation

The extension can be installed on Linux and Windows.

Linux

Before you start installation make sure that libfann is installed on your system. It's part of the main repository in the most Linux distributions (search for fann). If not you need to install it first. Either download it from the official site or get it from your distro repository. For example on Ubuntu:

$ sudo apt-get install libfann-dev

Fann installation can be skipped if an RPM for Fedora is used (libfann is in the package dependencies).

If the library is re-installed manually, then all old library file should be removed before re-installing otherwise the old library version could be linked.

Fedora

The RPM package for PHP FANN is available in Remi's repository: http://rpms.famillecollet.com/

It is available for Fedora, RHEL and clones (CentOS, SC and others).

After downloading remi-release RPM, the package can be installed by executing following command:

$ sudo yum --enablerepo=remi install php-pecl-fann

PECL

This extension is available on PECL. The installation is very simple. Just run:

$ sudo pecl install fann

Manual Installation

It's important to have a git installed as it's necessary for recursive fetch of phpc.

First clone recursively the repository

git clone --recursive https://github.com/bukka/php-fann.git

Then go to the created source directory and compile the extension. You need to have a php development package installed (command phpize must be available).

cd php-fann
phpize
./configure --with-fann
make
sudo make install

If you are rebuilding the extension and see warning about Libtool version mismatch error, try to run phpize --clean or if it doesn't help, try

aclocal && libtoolize --force && autoreconf

and then run the compilation steps starting with phpize again.

Finally you need to add

extension=fann.so

to the php.ini

Windows

Precompiled binary dll libraries for php-fann and libfann are available on the PECL fann page. The compiled version of libfann is 2.2.

Examples

There are three example projects: Logic Gates, OCR & Pathfinder.

Logic Gates

Simple

The Simple example trains a single neural network to perform the XOR operation.

simple_train.php

simple_train_epoch.php

simple_test.php

simple_merge.php

All

The All example trains 7 seperate neural networks to perform the AND, NAND, NOR, NOT, OR, XNOR & XOR operations.

train_all.php

test_all.php

OCR

OCR is a practical example of Optical Character Recognition using FANN. While this example is limited and does make mistakes, the concepts illustrated by OCR can be applied to a more robust stacked network that uses feature extraction and convolution layers to recognize text of any font in any size image.

train_ocr.php

test_ocr.php

Pathfinder

Pathfinder is an example of a neural network that is capable of plotting an 8 direction step path from a starting position in a 5x5 grid to an ending position in that grid. To keep the Pathfinder example simple it is not trained to deal with walls or non-traversable terrain however it would be very easy to add that by adding additional training.

pathfinder_train.php

pathfinder_test.php

php-fann's People

Contributors

bukka avatar footcha avatar geekgirljoy avatar remicollet avatar weltling avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.