Pull to refresh

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

Reading time3 min
Views20K
Original author: Bilal Ahmad Khan


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

Сегодня я собираюсь познакомить вас с тем как это делается. Прежде всего, убедитесь, что у вас обновленная копия 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
Tags:
Hubs:
Total votes 42: ↑38 and ↓4+34
Comments16

Articles