Как вписать API обслуживающего клиента TensorFlow в лямбду Python?

Я пытаюсь построить Python Lambda для отправки изображений в TensorFlow Serving для вывода. У меня есть по крайней мере две зависимости: CV2 и tenorflow_serving.apis. Я запустил несколько учебных пособий, показывающих, что можно запускать тензорный поток в лямбда-выражении, но они предоставляют пакет для установки и не объясняют, как они его поместили в распакованном виде размером менее 256 МБ.

Я пытался следовать официальным инструкциям для упаковки, но только это загружает 475 МБ зависимостей:

$ python -m pip install tensorflow-serving-api --target .
Collecting tensorflow-serving-api
  Downloading https://files.pythonhosted.org/packages/79/69/1e724c0d98f12b12f9ad583a3df7750e14ec5f06069aa4be8d75a2ab9bb8/tensorflow_serving_api-1.12.0-py2.py3-none-any.whl
...
$ du -hs .
475M    .

Я вижу, что другие боролись с этим драконом и победили ( 1) ( 2), делая извращения, чтобы вырвать все неиспользуемые библиотеки из всех зависимостей или скомпилировать с нуля. Но такие крайности кажутся мне сложными и, надо надеяться, устаревшими в мире, где наука о данных и лямбда-выражения являются почти мейнстримом. Правда ли, что так мало людей используют TensorFlow Serving с Python, что мне придется перепрыгивать через такие обручи, чтобы один из них работал как Lambda? Или есть более простой способ?

0 ответов

Цель состоит в том, чтобы на самом деле не иметь тензорного потока на стороне клиента, поскольку он использует тонну пространства, но на самом деле не нужен для вывода. К сожалению tensorflow-serving-api требует всего tensorflow пакет, который сам по себе слишком большой, чтобы поместиться в лямбду.

Вместо этого вы можете создать собственный клиент, а не использовать этот пакет. Это предполагает использование grpcio-tools пакет для связи с протоколом и различными .proto файлы из тензор потока и тензор потока обслуживания.

В частности, вы захотите упаковать эти файлы

tensorflow/serving/  
  tensorflow_serving/apis/model.proto
  tensorflow_serving/apis/predict.proto
  tensorflow_serving/apis/prediction_service.proto
tensorflow/tensorflow/  
  tensorflow/core/framework/resource_handle.proto
  tensorflow/core/framework/tensor_shape.proto
  tensorflow/core/framework/tensor.proto
  tensorflow/core/framework/types.proto

Оттуда вы можете сгенерировать файлы python protobuf.

Другие вопросы по тегам