Рубрики
Без рубрики

Тысяча способов развертывать модели машинного обучения – A.P.I

Первоначально опубликовано здесь «Что такое использование модели обучения машины, если вы не развертываете до производства» – … с меткой машинного обучения, Python.

Первоначально опубликовано здесь

«Что такое использование модели обучения машины, если вы не развертываете до производства» – Аноним

Вы проделали отличное рабочее здание, которое удивительно 99% точная модель обучения машины, но ваша работа большую часть времени не выполняется без развертывания. В большинстве случаев наши модели будут интегрированы с существующими веб-приложениями, мобильными приложениями или другими системами. Как тогда мы заставляем это случиться?

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

1. Через A.P.I.

Это включает в себя создание ваших моделей доступными через интерфейс программирования приложений (A.P.I). Во-первых, я буду развернуть модель глубокой обучения, построенной Восход Одегуа классифицировать малярии клетки. Ноутбук можно найти здесь Отказ

Тогда я также развернул простую модульную модель классификатора Negerian Movie Movie, построенную Амину Израиль Отказ Ноутбук можно найти здесь Отказ

Развертывание модели глубокого обучения через A.P.I

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

cnn_model.save('model_name.h5')

Вы можете переместить сохраненную модель в папку, доступную для вашего кода A.P.I. Я буду использовать колбу для развертывания, но можно использовать Django, Starlette или любые другие рамки Python. Вот как выглядит структура моей папки –

Переходя к нашей папке A.P.I (приведено в действие Flask) Первое, что вы захотите сделать, это установить требования. Я сохранил требования в требованиях. Atxt. Вот что это выглядит

Вы можете установить эти требования, просто запустив это в вашем терминале

PIP Установка -R требования. atxt

Так же, как мы предварительно исправили изображения, прежде чем передавать их в нашу нейронную сеть для обучения, мы также бы предварительно назначим все входные изображения, которые мы собираем через нашу конечную точку a.p.i. В строке 8 мы преобразовали изображение собирать через конечную точку A.P.I в массив. Вы заметите небольшое различие в том, что вы бы сделали по норме, и это просто из-за Хранение данных колба . Использование кода в строке 9 будет делать то же самое на структуре, такую как Django или, если вы загружаетесь с пути на ваш компьютер.

Из строк 10-15 получаем RBG версию нашего изображения, изменил изображение до 100×100 и преобразуйте изображение в Numpy Array. Мы также масштабировали наше изображение в диапазон [0, 1] и возвращают кортеж, содержащий True, если ошибка не происходит и на нашем изображении наш образ.

Изображение выше показывает функцию, которая выполняет магию. Линия 26 просто означает, что функция «Classify_Malaria_cells» будет выполнена, когда вызывается конечная точка «классификация».

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

from keras.models import load_model
# OR
# from tensorflow.keras.models import load_model
malaria_model = load_model(MODEL_PATH)

Из строк 34-39 мы загрузили сохраненную модель, выполнили прогноз, чтобы определить класс для изображения и получить оценку точности для прогнозирования. В строке 40 результат из модели сохраняется в словаре Python, который будет отправлен обратно как ответ JSON на линии 60.

Мы заканчиваем нашу a.p.i с:

if __name__ == "__main__":
    flask_app.run(port=8080, debug=False, threaded=False)

С этим мы успешно построили наши a.p.i, и он готов к развертыванию на любую облачную платформу.

Развертывание в Google Cloud

  1. Создайте учетную запись Google Cloud – https://cloud.google.com/
  2. Создайте новый проект Google Cloud Platform. Вы можете следовать шагам здесь
  3. Перейдите в корню этого проекта Flask в вашем терминале и запустите: Приложение Python GCloud Deploy

** Я также добавил Proffile для развертывания на Heroku Просто следуйте шагам здесь развернуть.

Развертывание модели обучения машины через A.P.I

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

import pickle
FILENAME = 'filename.pkl'
pickle.dump(trained_model, open(FILENAME, 'wb'))

или

import joblib
FILENAME = 'filename.joblib'
joblib.dump(trained_model, FILENAME)

Рекомендуется, чтобы Джобликс использоваться для экономии моделей, а не использования Парил Из-за его эффективности на объектах, которые несут большие многие массивы внутри. Точно так же, как мы сделали с глубокой моделью обучения, сохраните свою модель в папке, доступную для вашей колбы A.P.I. Вот как выглядит моя структура файлов

Наши требования здесь немного отличаются.

Вы можете установить эти требования, просто запустив это в свой терминал снова.

PIP Установка -R требования. atxt

Далее мы импортируем необходимые модули и инициализируйте некоторые переменные.

В приведенной выше вспомогательной функции мы разделили предложение словами, удалили слов стоп, загруженные из маринованного файла в строке 10. По линии 18, A HashingVectorizer используется для токенизированных слов в матрицу. Выход этого – матрица Scipy.Sparse.

Наш обзор фильма будет в текстовом формате. В строке 24 мы проверяем, отправляются ли необходимые данные формы, а затем мы назначаем имя переменной к данным формы в строке 25. В строке 28 мы открыли и загрузили наш классификатор обзора фильма с сортировкой (вы можете достичь того же с Joblib). На линиях, 29-36 Мы прошли векторизованный обзор фильма в наш классификатор отзыва фильма для прогнозирования, рассчитал оценку вероятностей прогнозирования и создал словарь Python, чтобы выйти из результатов нашего прогнозирования. Выход затем отправляется как ответ JSON на строках 47.

Мы успешно построили классификацию отзывов фильма A.P.I, и она готова к развертыванию на любую облачную платформу. Я также добавил файл конфигурации для развертывания на обоих Google Cloud и Heroku Отказ

Это все на развертывании модели через A.P.I. Вы можете найти коды, используемые в этой статье здесь Отказ

В моей следующей статье я поделитесь тем, как развернуть модели обучения машин для приложений с Tensorflow Lite.

Спасибо за чтение 👍

Оригинал: “https://dev.to/emmarex/a-thousand-ways-to-deploy-machine-learning-models-a-p-i-36eo”