Часть 1. Проект по развертыванию моделей цифровых классификаторов TensorFlow с использованием докера и их интеграции с интерфейсом Angular.

Оглавление

  1. "Введение"
  2. Модели: git repo → tf-mnist-project
  3. Модели обслуживания: git repo → tf-serving-mnist-project
  4. Пользовательский интерфейс: git repo → angular-mnist-project

Недавно я реализовал комплексное решение, чтобы лучше понять, как можно использовать модель TensorFlow в производственной среде. В Интернете доступно множество замечательных ресурсов, которые помогут вам настроить и обучить модели TensorFlow и развернуть их в качестве сервисов. Однако во время этого короткого проекта я столкнулся с несколькими проблемами (в основном из-за отсутствия у меня опыта и понимания) и хотел задокументировать здесь свой общий процесс и решение проблем, чтобы другие могли потенциально учиться на моих ошибках и уроках.

Хотя я взялся за этот проект, чтобы узнать об обслуживании модели TensorFlow, я хотел решить сквозную задачу, чтобы убедиться в своем понимании (и в том, что моя установка работает).

Объем проекта

Этот проект разбит на 3 раздела/поста:

  1. Создавайте, обучайте и сохраняйте набор моделей TensorFlow.
  2. Настройте док-контейнер для размещения моделей TensorFlow.
  3. Разверните простой пользовательский интерфейс Angular для использования службы, предоставляющей модели TensorFlow.

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

Архитектура высокого уровня

Для этого проекта используется одна виртуальная машина, а док-контейнеры будут использоваться для развертывания изолированных компонентов, как показано ниже. Для моей реализации использовался экземпляр Ubuntu Виртуальная машина Google Cloud Platform, но можно использовать любую виртуальную машину.

Что будет освещено в моей публикации об этом проекте

  1. Общий обзор технологий с использованием заемных средств
  2. Структура модели TensorFlow, обучение и гиперпараметры, которые я считаю успешными
  3. Подробный процесс обновления кода TensorFlow для создания обслуживаемых моделей.
  4. Конфигурация обслуживающего образа докера TensorFlow для развертывания нескольких моделей
  5. Общий обзор моего развертывания приложения Angular и интеграции с сервисом TensorFlow.
  6. Общий обзор развертывания сервисных контейнеров Angular и TensorFlow в экземпляре Google Cloud Platform.

Что не будет освещено в моем сообщении об этом проекте

  1. Пошаговое руководство по коду TensorFlow и Angular — я предоставлю ссылки на ресурсы, которые делают это намного лучше, чем я, и я также предоставлю исходный код mt.
  2. Подробное пошаговое руководство по настройке размещенного экземпляра — будут предоставлены соответствующие ссылки.

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

Вот краткий обзор компонентов, задействованных в этом проекте

  1. "Введение"
  2. Модели: git repo → tf-mnist-project
  3. Модели обслуживания: git repo → tf-serving-mnist-project
  4. Пользовательский интерфейс: git repo → angular-mnist-project