Обслуживание TensorFlow и вывод TensorFlow (тип контейнера для модели SageMaker) - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в TensorFlow (и SageMaker) и застрял в процессе развертывания конечной точки SageMaker. Мне совсем недавно удалось создать модель типа Saved Model, которая в настоящее время используется для обслуживания конечной точки образца (модель была создана извне). Однако, когда я проверил изображение, которое я использую для конечной точки, оно говорит '... / tenorflow-inference', что не является тем направлением, в котором я хочу go, потому что я хочу использовать обслуживающий контейнер SageMaker TensorFlow (я следовал руководствам из официального TensorFlow, обслуживающего репозиторий GitHub с использованием образцов моделей, и они развертываются с исправлением с использованием обслуживающей инфраструктуры TensorFlow).

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

Вот как я развернул пример конечной точки:

model = Model(model_data =...)

predictor = model.deploy(initial_instance_count=...)

Когда я запускаю код, я получаю модель, конфигурацию конечной точки и конечную точку. Я получил тип контейнера, щелкнув сведения о модели в консоли AWS SageMaker.

Ответы [ 2 ]

0 голосов
/ 20 июля 2020

Существуют разные версии фреймворков. Поскольку я использую версию фреймворка 1.15, полученное мной изображение должно было находиться в контейнере вывода тензорного потока. Если бы я использовал версии <= 1.13, то получил бы изображения, обслуживающие sagemaker-tensorflow. Это не одно и то же, но нет «правильного» типа контейнера. </p>

0 голосов
/ 15 июля 2020

Существует два API для развертывания моделей TensorFlow: tensorflow.Model и tensorflow.serving.Model. Из фрагмента кода неясно, какой из них вы используете, но документы SageMaker рекомендуют последний для развертывания из уже существующих артефактов s3:

from sagemaker.tensorflow.serving import Model

model = Model(model_data='s3://mybucket/model.tar.gz', role='MySageMakerRole')

predictor = model.deploy(initial_instance_count=1, instance_type='ml.c5.xlarge')

Ссылка: https://github.com/aws/sagemaker-python-sdk/blob/c919e4dee3a00243f0b736af93fb156d17b04796/src/sagemaker/tensorflow/deploying_tensorflow_serving.rst#deploying -directly-from-model-artifacts

он говорит '... / tensorflow-inference', что не является тем направлением, в котором я хочу go, потому что я хочу использовать SageMaker обслуживающий контейнер TensorFlow

Если вы не указали аргумент image для tensorflow.Model, SageMaker должен использовать обслуживающий образ TensorFlow по умолчанию (похоже, ".. /tensorflow-inference").

image (str) – A Docker image URI (default: None). If not specified, a default image for TensorFlow Serving will be used.

Если все это кажется вам излишне сложным, я работаю над платформой, которая позволяет создать одну строку кода - мне бы очень хотелось, чтобы Вы можете попробовать это, дми мне на https://twitter.com/yoavz_.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...