Есть ли какой-либо пример кода для развертывания Tensorflow Model через RESTful API? Я вижу примеры для командной строки и для мобильного приложения. Есть ли рамки для этого или люди просто загружают модель и выставляют метод прогнозирования через веб-инфраструктуру (например, Flask) для ввода ввода (скажем, через JSON) и возврата ответа? Под каркасом я подразумеваю масштабирование для большого количества запросов на прогнозирование. Конечно, поскольку модели неизменяемы, мы можем запускать несколько экземпляров нашего сервера прогнозирования и помещать его в балансировщик нагрузки (например, HAProxy). Мой вопрос в том, что люди используют некоторые рамки для этого или делают это с нуля, или, возможно, это уже доступно в Tensorflow, и я его не заметил.
Пример развертывания модели Tensorflow с помощью API RESTful
Ответ 1
https://github.com/sugyan/tensorflow-mnist показывает простой пример restAPI, используя Flask и загружая предварительно подготовленный режим (восстановление).
@app.route('/api/mnist', methods=['POST'])
def mnist():
input = ((255 - np.array(request.json, dtype=np.uint8)) / 255.0).reshape(1, 784)
output1 = simple(input)
output2 = convolutional(input)
return jsonify(results=[output1, output2])
Также см. онлайн-демонстрацию https://tensorflow-mnist.herokuapp.com/. Кажется, API достаточно быстр.
Ответ 2
TensorFlow Serving - это высокопроизводительная система с открытым исходным кодом для моделей машинного обучения, предназначенная для производственных сред и оптимизированная для TensorFlow. Исходный выпуск содержит примеры, построенные с помощью gRPC, но вы можете легко заменить front-end (обозначенный как "клиент" на диаграмме ниже) с API RESTful в соответствии с вашими потребностями.
Чтобы быстро начать работу, ознакомьтесь с учебником.