Создание надежных моделей машинного обучения без предварительных знаний
Следуя моим предыдущим блогам об обучении и использовании моделей TensorFlow на периферии в Python, в этой восьмой публикации в этой серии я расскажу о том, как обучить модель классификации изображений с несколькими метками, которая может быть используется с TensorFlow.
Пит-стопы серии
- Обучение модели классификации изображений TensorFlow Lite с помощью AutoML Vision Edge
- Создание модели обнаружения объектов TensorFlow Lite с помощью Google Cloud AutoML
- Использование моделей классификации изображений Google Cloud AutoML Edge в Python
- Использование моделей обнаружения объектов Google Cloud AutoML Edge в Python
- Запуск моделей классификации изображений TensorFlow Lite на Python
- Запуск моделей обнаружения объектов TensorFlow Lite на Python
- Оптимизация производительности моделей TensorFlow для периферии
- Обучение модели классификации изображений с несколькими метками с помощью Google Cloud AutoML (вы здесь)
В отличие от модели классификации изображений, которую мы обучили ранее; Классификация изображений с несколькими метками позволяет нам установить более одной метки для изображения:
Очень мощный вариант использования для этого типа модели может быть в приложении для предложения рецептов, которое позволяет вам сделать изображение продуктов, которые у вас есть, а затем предложить рецепт на основе элементов, которые он распознает и маркирует.
Рассмотрим изображение выше. При однокомпонентной классификации наша модель могла обнаруживать на изображении только один класс (например, томат или картофель или лук), но при многокомпонентной классификации; модель может обнаружить присутствие более одного класса на данном изображении (например, помидор, картофель, и лук)
Это всего лишь один небольшой пример того, как классификация с несколькими метками может нам помочь, но, конечно, вы можете придумать еще много примеров.
Хотя для обучения таких моделей обычно требуется мощная машина и базовые знания о фреймворках машинного обучения, использование 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 для получения ресурсов, событий и гораздо больше, что поможет вам быстрее создавать лучшие модели машинного обучения.