Создание надежных моделей машинного обучения без предварительных знаний

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

Пит-стопы серии

В отличие от модели классификации изображений, которую мы обучили ранее; Классификация изображений с несколькими метками позволяет нам установить более одной метки для изображения:

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

Рассмотрим изображение выше. При однокомпонентной классификации наша модель могла обнаруживать на изображении только один класс (например, томат или картофель или лук), но при многокомпонентной классификации; модель может обнаружить присутствие более одного класса на данном изображении (например, помидор, картофель, и лук)

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

Хотя для обучения таких моделей обычно требуется мощная машина и базовые знания о фреймворках машинного обучения, использование AutoML устраняет необходимость в этом. Вы можете быстро перенести процесс обучения на серверы Google, а затем экспортировать обученный край модели в виде файла tflite для запуска в приложениях Android / iOS или в виде файла pb для запуска. среда Python.

Недавно я использовал этот продукт, чтобы обучить модель с несколькими этикетками определять как свадебные платья, так и цветы на изображении, и вот некоторые результаты:

Давайте теперь посмотрим, как вы можете самостоятельно обучить аналогичную модель менее чем за 30 минут :)

Шаг 1. Создайте проект Google Cloud

Перейдите на https://console.cloud.google.com и войдите в свою учетную запись или зарегистрируйтесь, если вы еще этого не сделали.

Все ваши проекты Firebase используют части Google Cloud в качестве серверной части, поэтому вы можете увидеть некоторые существующие проекты в своей консоли Firebase. Либо выберите один из тех проектов, которые не используются в производстве, либо создайте новый проект GCP.

Шаг 2. Создайте новый набор данных для мультиклассовой маркировки изображений.

В консоли откройте боковую панель справа и перейдите в самый низ, пока не найдете вкладку Vision. Щелкните по нему.

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

Вам может быть предложено включить AutoML Vision API. Вы можете сделать это, нажав кнопку Включить API, отображаемую на странице.

Наконец, нажмите кнопку Новый набор данных, дайте ему правильное имя, а затем выберите Классификация по нескольким меткам в целях модели.

Шаг 3. Подготовка набора изображений.

Когда дело доходит до подготовки хорошего набора данных, я подробно рассказывал о том, как это сделать, в одной из своих предыдущих публикаций в блоге. Вы можете прочитать это здесь, если хотите:



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

Например, изображение со свадебным платьем будет помещено в папку с именем dress, а изображение, содержащее цветы, будет помещено в папку с именем flowers. Изображения, содержащие обе эти вещи, будут помещены в обе эти папки.

Вот как будет выглядеть конечный результат:

После этого заархивируйте папку, содержащую эти две папки.

Шаг 4. Импорт изображений для обучения

После того, как набор данных обучающих изображений подготовлен, пора нам вернуться в нашу облачную консоль Google и вернуться к набору данных, который мы создали ранее. Здесь нам будет предложено загрузить начальный обучающий набор вместе с местоположением Cloud Storage Bucket, используемого для хранения этого набора данных.

Нажмите Выбрать изображения и выберите только что созданный zip-архив. После этого нажмите кнопку Обзор рядом с путем GCS и выберите папку с именем your-project-name.appspot.com:

После этого нажмите Продолжить и дождитесь завершения процесса импорта.

Шаг 5: Обучение модели

После завершения процесса импорта самое время обучить модель. Для этого перейдите на вкладку Обучение и нажмите кнопку с надписью Начать обучение.

Вам будет предложено несколько вариантов выбора, как только вы нажмете эту кнопку. Убедитесь, что вы выбрали Edge в качестве первого варианта, а не Cloud-Based, если вы хотите tflite моделей, которые можно запускать локально.

Нажмите Продолжить и выберите, насколько точной должна быть модель. Обратите внимание, что большая точность означает более медленную модель, и наоборот:

Наконец, выберите желаемый бюджет и начните обучение. Для краевых моделей первые 15 часов обучения бесплатны:

Как только начнется обучение модели, расслабьтесь и расслабьтесь! Как только ваша модель будет обучена, вы получите электронное письмо.

Шаг 6. Развертывание и тестирование обученной модели

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

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

Вы также можете загрузить файл tflite в свою локальную систему и загрузить его в свое приложение, чтобы реализовать там те же функции:

Примечание. Вам выставляется счет за время развертывания вашей модели в Google Cloud, поэтому обязательно удалите развертывание с вкладки Тестирование и использование после того, как вы я загрузил .tflite файл, чтобы избежать дополнительных расходов. Для получения дополнительной информации посетите страницу цен на Google Cloud AutoML: https://cloud.google.com/vision/automl/pricing

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

Я скоро напишу еще одну запись в блоге о том, как использовать полученную модель tflite для классификации изображений в приложении для Android и в среде Python - так что следите за этим!

Спасибо за внимание! Если вам понравилась эта история, пожалуйста, нажмите 👏 кнопку и поделитесь ею, чтобы помочь другим найти ее! Не стесняйтесь оставлять комментарии 💬 ниже.

Есть отзывы? Подключим в Twitter.

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

Являясь независимой редакцией, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и группам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим участникам и не продаем рекламу.

Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее создавать лучшие модели машинного обучения.