Как использовать предварительно обученную модель из s3 для прогнозирования некоторых данных? - PullRequest
0 голосов
/ 22 мая 2019

Я обучил модель семантической сегментации с использованием Sagemaker, и выход был сохранен в корзину s3. Я хочу загрузить эту модель из s3, чтобы предсказать некоторые изображения в Sagemaker.

Я знаю, как предсказать, оставлю ли экземпляр ноутбука работать после обучения, так как его просто развернуть, но это не очень помогает, если я хочу использовать более старую модель.

Я посмотрел на эти источники и смог сам что-то придумать, но это не сработало, поэтому я здесь:

https://course.fast.ai/deployment_amzn_sagemaker.html#deploy-to-sagemaker https://aws.amazon.com/getting-started/tutorials/build-train-deploy-machine-learning-model-sagemaker/

https://sagemaker.readthedocs.io/en/stable/pipeline.html

https://github.com/awslabs/amazon-sagemaker-examples/blob/master/advanced_functionality/inference_pipeline_sparkml_xgboost_abalone/inference_pipeline_sparkml_xgboost_abalone.ipynb

Мой код такой:

from sagemaker.pipeline import PipelineModel
from sagemaker.model import Model

s3_model_bucket = 'bucket'
s3_model_key_prefix = 'prefix'
data = 's3://{}/{}/{}'.format(s3_model_bucket, s3_model_key_prefix, 'model.tar.gz')
models = ss_model.create_model() # ss_model is my sagemaker.estimator

model = PipelineModel(name=data, role=role, models= [models])
ss_predictor = model.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge')

1 Ответ

0 голосов
/ 23 мая 2019

Вы можете на самом деле создать экземпляр Python SDK model из существующих артефактов и развернуть его в конечной точке.Это позволяет развернуть модель из обученных артефактов без необходимости переобучаться в блокноте.Например, для модели семантической сегментации:

trainedmodel = sagemaker.model.Model(
    model_data='s3://...model path here../model.tar.gz',
    image='685385470294.dkr.ecr.eu-west-1.amazonaws.com/semantic-segmentation:latest',  # example path for the semantic segmentation in eu-west-1
    role=role)  # your role here; could be different name

trainedmodel.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge')

И аналогично, вы можете создать экземпляр объекта предиктора на развернутой конечной точке из любого аутентифицированного клиента, поддерживающего SDK, с помощью следующей команды:

predictor = sagemaker.predictor.RealTimePredictor(
    endpoint='endpoint name here',
    content_type='image/jpeg',
    accept='image/png')

Подробнее об этих абстракциях:

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