Я создал сверточную нейронную сеть для классификации изображений кошек и собак. Набор данных, а также код были доступны в Интернете. В качестве языка программирования я использовал Python. Но теперь мне нужно развернуть эту модель на сервере и получить к ней доступ с помощью REST API.
Я сохранил свою модель в формате HDF5. пример "model.h5" Для справки: https://machinelearningmaster.com/save-load-keras-deep-learning-models/
Мы также можем преобразовать его в файл PMML, но файл PMML еще не поддерживает CNN.
Мы можем использовать библиотеку flask для преобразования модели в спокойный веб-сервис, например: "https://www.linode.com/docs/applications/big-data/how-to-move-machine-learning-model-to-production/"
Но Я бы предпочел java.
Я предпочитаю делать микросервис с помощью Spring Boot. Но я не получил пошаговой статьи о том, как это сделать.
Может ли кто-нибудь помочь мне, как мы можем достичь модели доступа через REST API с помощью Java. Или любой другой метод развертывания и доступа с помощью REST API.
Любая помощь будет оценена по достоинству.




Поскольку вы обучили модель с помощью Keras, я предлагаю вам преобразовать модель в замороженную модель tensorflow (файл pb). Вы можете использовать этот библиотека для преобразования модели h5 формата keras в модель tensorflowpb.
Когда у вас есть готовая модель tensorflow, у вас есть много зрелых библиотек для развертывания модели. Tensorflow-обслуживающий - это знаменитый инструмент, который имеет множество удобных встроенных функций, таких как получение спокойного вывода из модели, более быстрое параллельное прогнозирование и многое другое.
Вот Почта, показывающий, как развернуть модель keras в tensorflow-serving. После развертывания int tensorflow-serving вы можете поместить его в контейнер с помощью nvidia-docker, а затем использовать службу с помощью любого приложения javaspring-boot.
Я бы рекомендовал попробовать BentoML или взглянуть на его архитектуру.
BentoML - это платформа с открытым исходным кодом для обслуживания высокопроизводительной модели машинного обучения. Это позволяет очень легко создать сервер REST API для демонстрации вашей модели машинного обучения через REST API. И он не зависит от фреймворка, прекрасно работает с Keras и многими другими фреймворками машинного обучения.
Обычно мы наблюдаем 10-50-кратное повышение общей производительности при переходе с простой фляги или реализации Java по сравнению с использованием среды BentoML. Ключевой метод оптимизации, используемый BentoML, - это адаптивное микропакетирование, которое группирует запросы онлайн-прогнозирования в небольшие пакеты перед подачей в модель, что в значительной степени увеличивает пропускную способность сервера модели API (Бумага для стрижки подробно описывает этот подход). Он обеспечивает производительность, аналогичную TF-серверу, при этом сохраняется среда выполнения Python для пользовательского кода, который выполняет предварительную или постобработку на своем сервере модели.
Еще одна причина рекомендовать BentoML заключается в том, что он специально разработан для обслуживания моделей машинного обучения, поэтому вам не придется заниматься разработкой веб-сервера нижнего уровня, в отличие от использования flask, Java Spring и т. д. И в нем есть все Встроенные передовые практики DevOps, предоставляющие основные функции прямо из коробки, такие как конечная точка метрик Prometheus, конечная точка проверки работоспособности, сбор журналов и определение Swagger API.
Отказ от ответственности: я являюсь автором проекта BentoML
Я предлагаю использовать ONNX для развертывания моделей глубокого обучения в производстве.
Сначала преобразуйте вашу модель в формат ONNX, так как вы использовали Keras для обучения своей модели, вы можете использовать библиотеку керас-оннкс.
Затем вы можете использовать AI-обслуживание, который обслуживает модель ONNX с конечными точками HTTP REST и gRPC. Существует пример ноутбук, показывающий, как развернуть модель MNIST ONNX с использованием AI-Serving.
Можете ли вы также посоветовать мне, как использовать эту службу с помощью java? Любая помощь с примером или ссылкой на пример будет хороша.