TL; DR. Этот пост поможет вам начать работу с фреймворком глубокого обучения Keras без проблем с установкой. Я покажу вам, как легко запустить ваш код в облаке бесплатно.

Я знаю, что существует множество руководств, которые помогут вам освоить глубокое обучение в Керасе. Обычно они идут с классификатором изображений для рукописных цифр MNIST или классификации кошек / собак. Здесь я хотел использовать другой, но, возможно, более интересный подход, показывая вам, как построить модель, которая может рекомендовать место, которое может вас заинтересовать, с учетом исходного изображения, которое вам нравится.

Давайте начнем!

Запуск в облаке, установка не требуется

Если у вас вообще есть опыт программирования, вы, возможно, когда-то страдали от боли, когда впервые начинали что-то новое.

Установка IDE, зависимостей библиотек, поддержки драйверов оборудования… И они могли стоить вам много времени до первого успешного запуска «Hello World!».

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

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

На этом этапе я хотел бы представить Google Colab, так как я нашел очень полезным поделиться своим кодом глубокого обучения с другими, чтобы они могли воспроизвести результат за считанные секунды.

Все, что вам нужно, это учетная запись Gmail и подключение к Интернету. Тяжелые вычисления будут выполняться серверами Google Colab.

Вам нужно будет освоиться со средой ноутбука Jupyter на Colab. Что довольно просто, вы нажимаете кнопку воспроизведения в левой части ячейки, чтобы запустить код внутри. Вы можете запускать ячейку несколько раз, если хотите.

Давайте увеличим скорость работы модели глубокого обучения, активировав графический процессор в colab.

Нажмите кнопку меню «Время выполнения», затем «Изменить тип среды выполнения», выберите графический процессор в раскрывающемся списке «Аппаратный ускоритель».

Мы готовы к путешествию! А теперь пристегнитесь, ведь мы собираемся выйти на дикий запад мира глубокого обучения.

Модель глубокого обучения, которая классифицирует места

Модель, которую мы представляем, может сказать, какие места находятся на изображении.

Или, если описать более формально, входом модели являются данные изображения, а выходом будет список мест с разными вероятностями. Чем выше вероятность, тем больше вероятность, что изображение содержит соответствующую сцену / место.

Модель может классифицировать 365 различных мест, включая кафе, музей, открытую площадку и т. Д.

Вот блокнот Colab для этого урока, вы можете поэкспериментировать с ним, читая эту статью. Keras_travel_place_recommendation-part1.ipynb

Самым важным строительным блоком нашей модели является сверточная сеть, которая будет играть роль извлечения характеристик изображения. От более общих низкоуровневых функций, таких как края / углы, до более специфичных для предметной области высокоуровневых функций, таких как узоры и детали.

В модели будет несколько блоков сверточных сетей, наложенных друг на друга. Чем глубже сверточный слой, тем более абстрактные и высокоуровневые функции он извлекает.

Вот изображения, демонстрирующие идею.

Теперь хватит интуиции сверточной сети. Давайте запачкаем руки, построив модель, чтобы это произошло.

С помощью фреймворка Keras действительно легко создать собственную модель глубокого обучения. Keras разработан для людей, а не для машин. Это также официальный высокоуровневый API для самой популярной библиотеки глубокого обучения - TensorFlow. Если вы просто начнете искать фреймворк для глубокого обучения. Керас - правильный выбор.

Построение модели

Не паникуйте, если вы впервые видите приведенный ниже код модели Keras. Собственно, понять это довольно просто. Модель состоит из нескольких блоков сверточных слоев. Каждый блок, как мы объясняли ранее, извлекает различные уровни функций изображения. Например, «Блок 1» находится на уровне ввода, он извлекает элементы начального уровня, такие как края и углы. Чем глубже он идет, тем больше абстрактных функций извлекает каждый блок. Вы также заметили, что окончательный блок классификации образован двумя полностью связанными слоями Dense, которые отвечают за окончательный прогноз.

Прогнозирование меток для изображения

Пусть модель предсказывает метки для изображения.

Модель ожидает фиксированной формы входного изображения, которая составляет 244 x 244 пикселей с тремя цветовыми каналами (RGB). Но что, если у нас есть другое изображение с другим разрешением? У Keras есть несколько полезных вспомогательных функций.

Приведенный ниже код превращает изображение в массив данных с последующей нормализацией значений данных перед подачей в модель.

Затем мы передаем обработанный массив формы (3, 244, 244) модели, переменная «preds» представляет собой список из 365 чисел с плавающей запятой, соответствующих 365 местам / сценам.

Возьмите 5 лучших прогнозов и сопоставьте их индексы с действительными названиями мест / сцен.

И вот результат.

['beach', 'lagoon', 'coast', 'ocean', 'islet']

Не стесняйтесь пробовать с другими изображениями.

Резюме и дальнейшее чтение

Мы узнали, как легко получить модель глубокого обучения, которая предсказывает места / сцены и быстро работает с помощью Google Colab. Прочтите вторую часть руководства, я собираюсь показать вам, как извлекать необработанные функции из изображений и использовать их для создания системы рекомендаций путешествий.

А пока ознакомьтесь с некоторыми ресурсами, которые могут быть полезны.

Документация Keras https://keras.io/, особенно часть API последовательной модели.

Если вы хотите загрузить свои собственные изображения в Colab, прочтите раздел Прогнозирование с помощью пользовательских изображений в одном из моих предыдущих постов.

Первоначально опубликовано на www.dlology.com.