这是 FANN(快速人工神经网络)库的 PHP 包装器。
该 API 记录在 http://www.php.net/manual/en/book.fann.php 上,其中是 PHP FANN 的完整文档。
该 API 与官方 FANN C API 非常相似。只是固定fann_type
的函数尚未映射,因为 PHP 始终支持float
。此外,某些函数不必要的参数已被省略(例如 PHP 数组不需要的数组长度)。
该扩展可以安装在 Linux 和 Windows 上。
在开始安装之前,请确保您的系统上已安装libfann
。它是大多数 Linux 发行版主存储库的一部分(搜索fann
)。如果没有,您需要先安装它。从官方网站下载它或从发行版存储库获取它。以 Ubuntu 为例:
$ sudo apt-get install libfann-dev
如果使用 Fedora 的 RPM( libfann
在软件包依赖项中),则可以跳过 Fann 安装。
如果手动重新安装库,则应在重新安装之前删除所有旧的库文件,否则可能会链接旧的库版本。
PHP FANN 的 RPM 包可在 Remi 的存储库中找到:http://rpms.famillecollet.com/
它适用于 Fedora、RHEL 和克隆版(CentOS、SC 等)。
下载 remi-release RPM 后,可以通过执行以下命令安装该软件包:
$ sudo yum --enablerepo=remi install php-pecl-fann
此扩展可在 PECL 上使用。安装非常简单。只需运行:
$ sudo pecl install fann
安装 git 很重要,因为它是递归获取 phpc 所必需的。
首先递归克隆存储库
git clone --recursive https://github.com/bukka/php-fann.git
然后进入创建的源目录并编译扩展。您需要安装php开发包(必须有phpize
命令)。
cd php-fann
phpize
./configure --with-fann
make
sudo make install
如果您正在重建扩展并看到有关 Libtool 版本不匹配错误的警告,请尝试运行phpize --clean
,或者如果没有帮助,请尝试
aclocal && libtoolize --force && autoreconf
然后再次运行从phpize
开始的编译步骤。
最后你需要添加
extension=fann.so
到 php.ini
PECL fann 页面上提供了 php-fann 和 libfann 的预编译二进制dll
库。 libfann的编译版本是2.2。
共有三个示例项目:逻辑门、OCR 和探路者。
简单示例训练单个神经网络来执行 XOR 运算。
simple_train.php
simple_train_epoch.php
simple_test.php
simple_merge.php
All 示例训练 7 个独立的神经网络来执行 AND、NAND、NOR、NOT、OR、XNOR 和 XOR 运算。
train_all.php
test_all.php
OCR 是使用 FANN 进行光学字符识别的一个实际示例。虽然这个例子是有限的并且确实会犯错误,但 OCR 所说明的概念可以应用于更强大的堆叠网络,该网络使用特征提取和卷积层来识别任何尺寸图像中任何字体的文本。
train_ocr.php
test_ocr.php
Pathfinder 是神经网络的一个示例,它能够绘制从 5x5 网格中的起始位置到该网格中的结束位置的 8 方向步进路径。为了使探路者示例保持简单,它没有经过训练来处理墙壁或不可穿越的地形,但是通过添加额外的训练来添加它会很容易。
pathfinder_train.php
pathfinder_test.php