Опит в инсталирането на невронна мрежа на домашен компютър
"Предупреждение! Това ръководство може да е частично остаряло, ако използвате най-новите версии на 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 минути. Резултат:
Ще анализираме параметрите за стартиране на тази невронна мрежа следващия път.