هذا غلاف PHP لمكتبة FANN (الشبكة العصبية الاصطناعية السريعة).
تم توثيق واجهة برمجة التطبيقات على http://www.php.net/manual/en/book.fann.php حيث توجد الوثائق الكاملة لـ PHP FANN.
واجهة برمجة التطبيقات (API) مشابهة جدًا لواجهة برمجة تطبيقات FANN C الرسمية. لم يتم تعيين سوى وظائف fann_type
الثابتة لأن PHP تدعم دائمًا float
. بالإضافة إلى ذلك، تم استبعاد الوسائط غير الضرورية لبعض الوظائف (على سبيل المثال، طول المصفوفة الذي ليس ضروريًا لمصفوفات PHP).
يمكن تثبيت الامتداد على Linux و Windows.
قبل البدء بالتثبيت، تأكد من تثبيت libfann
على نظامك. إنه جزء من المستودع الرئيسي في معظم توزيعات Linux (ابحث عن fann
). إذا لم يكن الأمر كذلك، فأنت بحاجة إلى تثبيته أولاً. قم بتنزيله من الموقع الرسمي أو احصل عليه من مستودع التوزيع الخاص بك. على سبيل المثال على أوبونتو:
$ 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
من المهم تثبيت 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
تتوفر مكتبات 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
يقوم المثال All بتدريب 7 شبكات عصبية منفصلة لتنفيذ عمليات AND وNAND وNOR وNOT وOR وXNOR وXOR.
Train_all.php
test_all.php
يعد التعرف الضوئي على الحروف (OCR) مثالاً عمليًا للتعرف الضوئي على الحروف باستخدام FANN. على الرغم من أن هذا المثال محدود ويحتوي على أخطاء، إلا أنه يمكن تطبيق المفاهيم الموضحة بواسطة التعرف الضوئي على الحروف على شبكة مكدسة أكثر قوة تستخدم استخراج الميزات وطبقات الالتواء للتعرف على نص أي خط في أي حجم صورة.
Train_ocr.php
test_ocr.php
يعد Pathfinder مثالاً على الشبكة العصبية القادرة على رسم مسار بخطوات ذات 8 اتجاهات من موضع البداية في شبكة 5x5 إلى موضع النهاية في تلك الشبكة. لإبقاء مثال Pathfinder بسيطًا، لم يتم تدريبه على التعامل مع الجدران أو التضاريس غير القابلة للعبور، ولكن سيكون من السهل جدًا إضافة ذلك عن طريق إضافة تدريب إضافي.
pathfinder_train.php
pathfinder_test.php