這是 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