Устанавливать библиотеку Fast Artificial Neural Network будем на операционную систему Debian (один из дистрибутивов Linux). Произвести установку библиотеки можно двумя способами.
- установка из репозиториев;
- установка всех элементов в отдельности.
Первый метод конечно облегчает немного установку, но это того не стоит. Вот с чем мне собственно пришлось столкнуться. Когда мне понадобилось произвести установку на Debian. Я нашел руководство по установке, в котором описывался первый метод. Бегло прочитав его и уже успев обрадоваться (как оказалось в дальнейшем, ненадолго), я принялся выполнять в точности все этапы по установке библиотеки, описанные в руководстве. Нюансов не возникло. Вроде библиотека установилась и расширение для PHP тоже. Казалось, что все должно было работать. Но не тут то было. Сначала я подключил нейронную сеть, которую использовал на denwere. Но результат оказался нулевым. Оказалось, что не проходила даже инициализация самой библиотеки. Перечитав еще раз руководство по установке и аналогичные руководства с других ресурсов, я понимал, что все должно работать. Но в итоге ничего не работало. Два дня у меня ушло на решение проблемы с установкой. Когда все возможные варианты (а их было немного) были исчерпаны у меня “пронеслась” мысль, а что если дистрибутив из репозитариев самой библиотеки “битый”. И как оказалось в дальнейшем, так оно и было. Поэтому рекомендую вам использовать второй метод установки, в итоге все будет работать, и ваши нервы будут в полном порядке.
Начало установки
Для установки нам нужны следующие инструменты:
- программа make;
- компилятор gcc;
- утилита phpize из пакета php5-dev.
Если первые два инструмента могут уже быть проинсталлированы, то третий, скорее всего нет. Но мы на всякий случай проверим все три.
dpkg -l | grep make
ii makedev 2.3.1-88 creates device files in /dev
dpkg -l | grep gcc
ii gcc-3.3-base 1:3.3.6-15 The GNU Compiler Collection (base package)
ii gcc-4.1-base 4.1.2-25 The GNU Compiler Collection (base package)
ii gcc-4.3-base 4.3.2-1.1 The GNU Compiler Collection (base package)
ii libgcc1 1:4.3.2-1.1 GCC support library
dpkg -l | grep php5-dev
Ну вот, как и следовало ожидать, у нас действительно ничего не проинсталлировано. До начала установки, желательно произвести обновление репозиториев. Для этого воспользуемся командой:
apt-get update
Теперь необходимо установить отсутствовавшие инструментарии:
apt-get install make
apt-get install gcc
apt-get install php5-dev
Далее необходимо получить информацию об архитектуре, чтобы знать какие пакеты библиотеки Fast Artificial Neural Network (хотя Debian не даст уставить пакеты с неподходящей архитектурой) устанавливать. Для этого используем команду:
uname –m
По результату видим, что сервер имеет архитектуру:
i686
Переходим в каталог /usr/local/src и скачиваем для архитектуры i686 следующие пакеты:
cd /usr/local/src
wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/universe/libf/libfann1/
libfann1_1.2.0-1_i386.deb
wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/universe/libf/libfann1/
libfann1-dev_1.2.0-1_i386.deb
Убедимся все ли скачалось:
ls -1
libfann1_1.2.0-1_i386.deb
libfann1-dev_1.2.0-1_i386.deb
Теперь их необходимо установить в определенном порядке:
dpkg -i libfann1_1.2.0-1_i386.deb
dpkg -i libfann1-dev_1.2.0-1_i386.deb
Установка расширения для PHP
Для того чтобы приступить установке расширения, его необходимо скачать:
wget http://pecl.php.net/get/fann
Проверим или архив на месте:
ls -1
fann
Далее его необходимо распаковать:
tar xvfz fann
package.xml
fann-0.1.1/config.m4
fann-0.1.1/fann.c
fann-0.1.1/php_fann.h
fann-0.1.1/demo.php
fann-0.1.1/CREDITS
fann-0.1.1/EXPERIMENTAL
Затем перейдем в каталог /usr/local/src/fann-0.1.1
cd fann-0.1.1
Все, осталось только все скомпилировать. Для начала необходимо выполнить команду phpize. Которая подготовит окружение PHP-расширения.
phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
Далее необходимо запустить скрипт configure.
./configure
Все, сейчас осталось собрать PHP расширение программой make.
make
Если вы увидите нечто похожее на следующие строки:
fann.c:393: error: 'zif_fannOO___set' undeclared (first use in this function)
fann.c:393: error: (Each undeclared identifier is reported only once
fann.c:393: error: for each function it appears in.)
fann.c:403: error: Б-?zif_fannOO___getБ-? undeclared (first use in this function)
то нужно в файле php_fann.h закомментировать строку 28 #define PHP_FANN_OO 1. И повторить вызов программы make.
make
libtool: install: cp ./.libs/fann.so /usr/local/src/fann-0.1.1/modules/fann.so
libtool: install: cp ./.libs/fann.lai /usr/local/src/fann-0.1.1/modules/fann.la
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
/sbin" ldconfig -n /usr/local/src/fann-0.1.1/modules
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/src/fann-0.1.1/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
Don't forget to run 'make test'.
Все, расширение собрано и осталось его проинсталлировать:
make install
Installing shared extensions: /usr/lib/php5/20090626/
Если вы добавили расширение в /etc/php5/cli/php.ini, то можно посмотреть подключен ли модуль следующей командой:
php -m | grep fann
fann
Я лично стараюсь синхронизировать настройки сразу везде:
- /etc/php5/apache2/php.ini;
- /etc/php5/cgi/ php.ini;
- /etc/php5/cli/ php.ini.
Для того чтобы проверить работу библиотеки, требуется запустить модуль demo.php. Он находиться в каталоге /usr/local/src/fann-0.1.1.
Еще есть небольшой один нюанс. Возможно вы не сможете использовать сеть обученную в другой версии библиотеки Fast Artificial Neural Network, с этой библиотекой. Придется под Linux ее переобучать. Но ничего страшного в этом нет.
По проектированию и созданию нейронной сети читайте эту статью.
Установка нейронной сети FANN в Linux
Устанавливать библиотеку Fast Artificial Neural Network будем на операционную систему Debian (один из дистрибутивов Linux). Произвести установку библиотеки можно двумя способами.
Первый метод конечно облегчает немного установку, но это того не стоит. Вот с чем мне собственно пришлось столкнуться. Когда мне понадобилось произвести установку на Debian. Я нашел руководство по установке, в котором описывался первый метод. Бегло прочитав его и уже успев обрадоваться (как оказалось в дальнейшем, ненадолго), я принялся выполнять в точности все этапы по установке библиотеки, описанные в руководстве. Нюансов не возникло. Вроде библиотека установилась и расширение для PHP тоже. Казалось, что все должно было работать. Но не тут то было. Сначала я подключил нейронную сеть, которую использовал на denwere. Но результат оказался нулевым. Оказалось, что не проходила даже инициализация самой библиотеки. Перечитав еще раз руководство по установке и аналогичные руководства с других ресурсов, я понимал, что все должно работать. Но в итоге ничего не работало. Два дня у меня ушло на решение проблемы с установкой. Когда все возможные варианты (а их было немного) были исчерпаны у меня “пронеслась” мысль, а что если дистрибутив из репозитариев самой библиотеки “битый”. И как оказалось в дальнейшем, так оно и было. Поэтому рекомендую вам использовать второй метод установки, в итоге все будет работать, и ваши нервы будут в полном порядке.
Начало установки
Для установки нам нужны следующие инструменты:
Если первые два инструмента могут уже быть проинсталлированы, то третий, скорее всего нет. Но мы на всякий случай проверим все три.
Ну вот, как и следовало ожидать, у нас действительно ничего не проинсталлировано. До начала установки, желательно произвести обновление репозиториев. Для этого воспользуемся командой:
Теперь необходимо установить отсутствовавшие инструментарии:
Далее необходимо получить информацию об архитектуре, чтобы знать какие пакеты библиотеки Fast Artificial Neural Network (хотя Debian не даст уставить пакеты с неподходящей архитектурой) устанавливать. Для этого используем команду:
По результату видим, что сервер имеет архитектуру:
Переходим в каталог /usr/local/src и скачиваем для архитектуры i686 следующие пакеты:
Убедимся все ли скачалось:
Теперь их необходимо установить в определенном порядке:
Установка расширения для PHP
Для того чтобы приступить установке расширения, его необходимо скачать:
Проверим или архив на месте:
Далее его необходимо распаковать:
Затем перейдем в каталог /usr/local/src/fann-0.1.1
Все, осталось только все скомпилировать. Для начала необходимо выполнить команду phpize. Которая подготовит окружение PHP-расширения.
Далее необходимо запустить скрипт configure.
Все, сейчас осталось собрать PHP расширение программой make.
Если вы увидите нечто похожее на следующие строки:
то нужно в файле php_fann.h закомментировать строку 28 #define PHP_FANN_OO 1. И повторить вызов программы make.
Все, расширение собрано и осталось его проинсталлировать:
Если вы добавили расширение в /etc/php5/cli/php.ini, то можно посмотреть подключен ли модуль следующей командой:
Я лично стараюсь синхронизировать настройки сразу везде:
Для того чтобы проверить работу библиотеки, требуется запустить модуль demo.php. Он находиться в каталоге /usr/local/src/fann-0.1.1.
Еще есть небольшой один нюанс. Возможно вы не сможете использовать сеть обученную в другой версии библиотеки Fast Artificial Neural Network, с этой библиотекой. Придется под Linux ее переобучать. Но ничего страшного в этом нет.
По проектированию и созданию нейронной сети читайте эту статью.