Создайте свои собственные “Нейронные Картины” с помощью Глубокого Обучения

от автора

Нейронные сети могут делать много разных вещей. Они могут понимать наши голоса, распознавать изображения и переводить речь, но знаете ли вы, что еще они умеют рисовать? Изображение сверху демонстрирует некоторые сгенерированные результаты применения нейронного рисования.

Сегодня я собираюсь познакомить вас с тем как это делается. Прежде всего, убедитесь, что у вас обновленная копия Ubuntu (14.04 — та, что использовал я). Вам необходимо иметь несколько гигов свободного пространства на жестком диске и в оперативной памяти, хотя бы не менее 6 GB (больше оперативки для больших выводимых разрешений). Для запуска Ubuntu как виртуальной машины, вы можете использовать Vagrant вместе с VirtualBox.

Убедитесь, что у вас установлен git. Чтобы скачать и установить git, просто откройте терминал и выполните:

$ sudo apt-get install git 

Шаг 1: Установите torch7

Torch — это фреймворк для научных вычислений с широкой поддержкой алгоритмов машинного обучения. Torch является главным пакетом Torch7, где определены структуры данных для многомерных тензоров и математические операции для них. Дополнительно, он предоставляет много утилит для доступа к файлам, сериализации объектов произвольных типов и другие полезные утилиты.

Запустите эти команды в терминале (вам может понадобиться использовать для них sudo):

$ cd ~/ $ curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash $ git clone https://github.com/torch/distro.git ~/torch --recursive $ cd ~/torch; ./install.sh 

Теперь нам надо обновить наши переменные окружения, запустите:

$ source ~/.bashrc 

Шаг 2: Установите loadcaffe

Выполните в терминале:

$ sudo apt-get install libprotobuf-dev protobuf-compiler $ luarocks install loadcaffe 

Либо, если у вас возникают проблемы, попробуйте так:

$ git clone git@github.com:szagoruyko/loadcaffe.git $ ~/torch/install/bin/luarocks install loadcaffe/loadcaffe-1.0–0.rockspec 

Шаг 3: Установите neural-style

Это torch-реализация спецификации Нейронный Алгоритм Художественного Стиля Леона А. Гатиса, Александра С. Эккера и Маттиаса Бетге. Спецификация представляет алгоритм для комбинирования контента одного изображения со стилем другого изображения, используя сверточные нейронные сети.

Сначала склонируйте neural-style с GitHub:

$ cd ~/ $ git clone https://github.com/jcjohnson/neural-style.git 

Далее, скачайте модели нейронной сети:

$ cd neural-style $ sh models/download_models.sh 

Шаг 4: Запускаем

Теперь убедитесь, что у вас есть хотя бы 6 GB оперативной памяти (если вы используете виртуальную машину, убедитесь, что выделили достаточное количество памяти для нее). Затем проверьте, работает ли нейронный стиль с помощью этой команды:

$ th neural_style.lua -gpu -1 -print_iter 1 

Заметьте, что вы выполняете это в режиме CPU, выполнение в режиме GPU выходит за рамки данной статьи.

Чтобы увидеть инструкции о том, как использовать нейронный стиль, запустите:

$ th neural_style.lua ? 

Теперь давайте выполним тестовую команду, чтобы убедиться, что нейронные стили работают. Для начала убедитесь, что вы находитесь в директории нейронных сетей, если вы следовали всем инструкциям выше, вы должны быть в ~/neural-network, теперь запустите:

th neural_style.lua -style_image examples/inputs/starry_night.jpg -content_image examples/inputs/golden_gate.jpg -gpu -1 -image_size 256 

Заметьте, я ввел меньший размер изображения, чтобы обработка закончилась быстрее. Когда команда завершится, выходной файл, со стандартным именем out.png, будет расположен в той же директории.

Результат


golden_gate.jpg


starry_night.jpg


out.png
ссылка на оригинал статьи https://habrahabr.ru/post/317622/