นี่คือ wrapper PHP สำหรับไลบรารี FANN (Fast Artificial Neural Network)
API ได้รับการบันทึกไว้ในhttp://www.php.net/manual/en/book.fann.php โดยที่เอกสารฉบับสมบูรณ์สำหรับ PHP FANN
API นี้คล้ายกับ FANN C API อย่างเป็นทางการมาก ฟังก์ชั่นเฉพาะสำหรับ fann_type
แบบคงที่ไม่ได้รับการแมปเนื่องจาก PHP รองรับ float
เสมอ นอกจากนี้ อาร์กิวเมนต์ที่ไม่จำเป็นสำหรับบางฟังก์ชันก็ถูกตัดออกไป (เช่น ความยาวอาร์เรย์ที่ไม่จำเป็นสำหรับอาร์เรย์ PHP)
สามารถติดตั้งส่วนขยายได้บน Linux และ Windows
ก่อนที่คุณจะเริ่มการติดตั้งตรวจสอบให้แน่ใจว่าได้ติดตั้ง libfann
บนระบบของคุณแล้ว มันเป็นส่วนหนึ่งของพื้นที่เก็บข้อมูลหลักในลีนุกซ์ส่วนใหญ่ (ค้นหา fann
) ถ้าไม่คุณจะต้องติดตั้งก่อน ดาวน์โหลดจากเว็บไซต์อย่างเป็นทางการหรือดาวน์โหลดจากพื้นที่เก็บข้อมูล distro ของคุณ ตัวอย่างเช่นบน Ubuntu:
$ sudo apt-get install libfann-dev
สามารถข้ามการติดตั้ง Fann ได้หากใช้ RPM สำหรับ Fedora ( libfann
อยู่ในการขึ้นต่อกันของแพ็คเกจ)
หากติดตั้งไลบรารีใหม่ด้วยตนเอง ควรลบไฟล์ไลบรารีเก่าทั้งหมดออกก่อนทำการติดตั้งใหม่ ไม่เช่นนั้นจะสามารถลิงก์ไลบรารีเวอร์ชันเก่าได้
แพ็คเกจ RPM สำหรับ PHP FANN มีอยู่ในที่เก็บของ 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
สิ่งสำคัญคือต้องติดตั้งคอมไพล์เนื่องจากจำเป็นสำหรับการดึงข้อมูล 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
ไลบรารี dll
ไบนารีที่คอมไพล์แล้วสำหรับ php-fann และ libfann มีอยู่ในหน้า PECL fann libfann เวอร์ชันที่คอมไพล์แล้วคือ 2.2
มีสามโครงการตัวอย่าง: Logic Gates, OCR และ Pathfinder
ตัวอย่างแบบง่ายฝึกโครงข่ายประสาทเทียมเดี่ยวเพื่อดำเนินการ XOR
simple_train.php
simple_train_epoch.php
simple_test.php
simple_merge.php
ตัวอย่างทั้งหมดจะฝึกโครงข่ายประสาทเทียมที่แยกจากกัน 7 เครือข่ายเพื่อดำเนินการ AND, NAND, NOR, NOT, OR, XNOR และ XOR
train_all.php
test_all.php
OCR เป็นตัวอย่างในทางปฏิบัติของการรู้จำอักขระด้วยแสงโดยใช้ FANN แม้ว่าตัวอย่างนี้จะถูกจำกัดและทำให้เกิดข้อผิดพลาด แต่แนวคิดที่แสดงโดย OCR สามารถนำไปใช้กับเครือข่ายแบบสแต็กที่มีประสิทธิภาพมากขึ้น ซึ่งใช้เลเยอร์การแยกคุณลักษณะและการบิดเพื่อจดจำข้อความของแบบอักษรใดๆ ในรูปภาพขนาดใดก็ได้
train_ocr.php
test_ocr.php
Pathfinder เป็นตัวอย่างของโครงข่ายประสาทเทียมที่สามารถวางแผนเส้นทางขั้นตอน 8 ทิศทางจากตำแหน่งเริ่มต้นในตาราง 5x5 ไปยังตำแหน่งสิ้นสุดในตารางนั้น เพื่อให้ตัวอย่าง Pathfinder เรียบง่าย ไม่มีการฝึกฝนให้จัดการกับกำแพงหรือภูมิประเทศที่ไม่สามารถทะลุผ่านได้ แต่จะง่ายมากที่จะเพิ่มสิ่งนั้นด้วยการเพิ่มการฝึกเพิ่มเติม
pathfinder_train.php
pathfinder_test.php