Опит в инсталирането на невронна мрежа на домашен компютър

"Предупреждение! Това ръководство може да е частично остаряло, ако използвате най-новите версии на Linux дистрибуции или софтуер, които се различават от тези, посочени в публикацията."

Веднага ще кажа, че не съм експерт, а аматьор с червени очи (отказ от отговорност) и имам любимата си версия LinuxMint 18, която е базирана на наскоро пуснатия Ubuntu 16.04, за някои домакински задължения до Win10 в режим dualboot. Използвайки всъщност 16.04, срещнах редица трудности. Така че тази публикация, в допълнение към превода на ръководството, ще бъде допълнена с корекции за системи 16.04 в хронологичен ред.

Всички връзки, дадени в публикацията, са или връзки към решения на определени проблеми, или връзки към официални източници на използваните скриптове и продукти.

Не ми се кара, мога да се махна някъде. Ако е така, поправете ме, просто ще ви благодаря.

И така, от желязото има:

* Linux Mint 18 x64 (базиран на Ubuntu 16.04).

опит

За да не въвеждам паролата от акаунта след използване на командата sudo в терминала, въведох моя потребител в конфигурацията (/etc/sudoers) както следва:

epicmorg ALL=(ALL) NOPASSWD:ALL

Къдетоepicmorgе името на моя акаунт. Вие имате своя. Товадалеч не е най-безопасното решение, не съм сигурен - не го правете.

Сега, след като отворихме инструкциите в github, ние следваме стъпките за това как да инсталираме невронен стил на Ubuntu.

Пълна инструкция на английски - тук.

Отворете терминала като ваш потребител и напишете:

(променете към началната си директория)

(изтегляне на скрипта install-deps и изпълнението му в bash терминал за инсталиране на зависимостите, необходими за инсталиране на torch)

Когато инсталирах install-deps, не намерих libqt4-core и libqt4-gui искриптът успешно изплюва грешката. Търсейки в гугъл, намерих отговор на as ubuntu, че на 16.04 се наричат ​​libqtcore4 и libqtgui4, които инсталирах отделно.

sudo apt-get инсталирайте libqtcore4 libqtgui4

След това скриптът install-deps се инсталира без грешки.

Между другото, ако няматеgit- инсталирайте го с командата и в същото времеcmake:

sudo apt-get инсталирате git cmake

В този случай не е необходимо да конфигурирате, той ще излезе "извън кутията".

След това просто трябва да клонираме хранилището на torch от github:

След това отидете до клонираната папка с факла и започнете да компилирате

При компилиране (изпълнение на install.sh) получих грешка, че readline.h не е намерен. Намерих отговора в stackoverflow - оказа се, че пакетътlibreadline-dev. липсва

sudo apt-get инсталирайте libreadline-dev

След повторно стартиране на install.sh - компилацията беше успешна.

Първият скрипт инсталира всички зависимости за факла и това може да отнеме известно време. Вторият скрипт всъщност инсталира Lua и самия torch и редактира файла.bashrc, така че torch да се добави към променливата $PATH.

След това трябва да актуализираме променливите на средата с командата:

инсталирането

За да проверя дали факелът е инсталиран, изпълнявам командата th в конзолата.

За изход - пиша изход, натискам enter и потвърждавам изхода с клавиша y.

Стъпка 2.Инсталирайтеloadcaffe

Loadcaffe е модул, който зарежда Caffe модели в Torch. Зависи от библиотеката на буфера на протокола на Google. Затова първо трябва да ги инсталирате: sudo apt-get install libprotobuf-dev protobuf-compiler

След - можете спокойно да инсталирате loadcaffe:

luarocks инсталирайте loadcaffe

Стъпка 3. Самата инсталацияневронен стил.

Сега трябва да копираме хранилището от github на самата невронна мрежа. Ние правим:

(променете към началната си директория)

(клониране на хранилище с невронен стил)

(отидете в изтеглената папка)

След това трябва да заредим предварително обучените модели на невронни мрежи:

инсталирането

Вече имаме способността да изпълняваме невронен стил в режим на процесора с командата:

th neural_style.lua -gpu -1 -print_iter 1

(В аргумента -gpu стойността -1 означава, че gpu не се използва. И стойностите от 0 и по-горе са номерирането на инсталирания gpu, но повече за това по-късно).

Ако всичко работи правилно, трябва да видите резултат като този:

Стъпка 4. Настройка на CUDA.

Както правилно отбеляза тов. @Landgraf132 , можеш да се измъкнеш с инсталирането на пакета nvidia-cuda-toolkit:

sudo apt-get инсталирайте nvidia-cuda-toolkit

Но аз не знаех това, затова тръгнах по по-трудния път. А именно, от сайта nvidia изтегли run-файла за 15.04 (тежи около гигабайт!) В домашната директория.

След това стартирайте инсталацията в терминала:

(променете към началната си директория)

sudo sh cuda_7.5.18_linux.run

(стартирайте инсталатора в конзолен режим)

Файлът съдържа драйвери за дисплея, CUDA инструментариум и cuda проби (перимери). На всички въпроси относно пътеките за инсталиране беше отговорено да, с изключение на драйвера на дисплея (вече инсталиран) и пробата CUDA, защото те няма да ни бъдат полезни.

невронна

(Както показа практиката, имаме нужда отgcc версия 4.8(която вече имах в системата), тъй като CUDA версия 7.5 е съвместима само с нея)

След инсталирането ръководството съветва да рестартирате. След успешно рестартиране проверих дали всичко е наред с помощта на командата в терминала:

опит

Стъпка 5. Инсталиране на CUDA бекенд за факел

Всичко е просто. В терминала изпълняваме:

luarocks инсталирайте cutorch

luarocks инсталирайте cunn

За да проверите дали е инсталиран правилно, изпълнете:

th -e "изисква 'cutorch'; изисква 'cunn'; print(cutorch)"

Нещо подобно на инструкциите падна в конзолата:

мрежа

Сега можете да стартирате невронната мрежа в режим GPU:

(преместване в директорията с мрежата)

th neural_style.lua -gpu 0 -print_iter 1

инсталирането

Отново - изход към конзолата, както е в инструкциите.

Стъпка 6. Допълнителна инсталация на cuDNN.

cuDNN е библиотека от NVIDIA, която ефективно прилага много от операциите (като конволюция и обединение), които обикновено се използват в дълбокото обучение.

След като се регистрирах като разработчик на NVIDIA, изтеглих необходимия архив cudnn-7.5-linux-x64-v5.1-rc.tgz в моята домашна директория.

Разопаковах и го инсталирах така:

tar -xzvf cudnn-7.5-linux-x64-v5.1-rc.tgz

sudo cp cuda/lib64/libcudnn* /usr/local/cuda-7.*/lib64/ sudo cp cuda/include/cudnn.h /usr/local/cuda-7.*/include/

Също така трябваше да копирам файловете libcudnn* в пътя, който имам в променливата LD_LIBRARY_PATH. (Без това не стартира). Можете да откриете пътя, като направите:

Имах това:/home/epicmorg/torch/install/lib

sudo cp cuda/lib64/libcudnn* /home/epicmorg/torch/install/lib

След като трябва да инсталирате приставката cuDNN за torch:

luarocks инсталирайте cudnn

Сега невронната мрежа може да се използва с cuDNN:

/neural-style th neural_style.lua -gpu 0 -backend cudnn

И да, cuDNN е наличен само за GPU режим.

Сега можете да си поиграете с невронната мрежа.

Стъпка 7. Проверка на практика.

Скрипт за тестово изпълнение:

th neural_style.lua -gpu 0 -backend cudnn -style_image -content_image

Заменете image1 за стила и image2 за снимката. пътищата към снимките могат да бъдат посочени както пълни, така и относителни.

Взех brad_pitt.jpg и golden_gate_starry.png от примера на github.

th neural_style.lua -gpu 0 -backend cudnn -style_image golden_gate_starry.png -content_image brad_pitt.jpg

Грешната сметка продължи около 3-4 минути. Резултат:

невронна

Ще анализираме параметрите за стартиране на тази невронна мрежа следващия път.