Как развернуть существующую модель pytorch, ранее обученную с Amazon Sagemaker и хранящуюся в корзине S3 - PullRequest
0 голосов
/ 04 марта 2020

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

Это код, который я использую:

estimator = sagemaker.model.FrameworkModel(
    model_data= #link to  model location in s3
    image=  # image
    role=role,
    entry_point='train.py', 
    source_dir='pytorch_source',
    sagemaker_session = sagemaker_session
) 

predictor = estimator.deploy(initial_instance_count=1, instance_type="ml.p2.xlarge")

Но после процесса развертывания (который, кажется, работает гладко), предиктор просто NoneType. Я не нашел ни одного странного сообщения в журналах ...

Я также предпринял еще одну попытку со следующим кодом:

estimator = PyTorchModel(model_data= #link to model location in s3 
                             role=role,
                             image= #image
                             entry_point='pytorch_source/train.py',
                            predictor_cls = 'pytorch_source/train.py',
                           framework_version = '1.1.0')

predictor = estimator.deploy(initial_instance_count=1, instance_type="ml.p2.xlarge")

Но это даже не завершает развертывание.

Кто-нибудь может помочь с этим?

1 Ответ

0 голосов
/ 06 марта 2020

Я на самом деле решил использовать PyTorchModel со следующими настройками:

estimator = PyTorchModel(model_data='#path to model, 
                             role=role,
                             source_dir='pytorch_source',
                             entry_point='deploy.py',
                            predictor_cls = ImgPredictor,
                           framework_version = '1.1.0')

, где ImgPredictor равен

from sagemaker.predictor import RealTimePredictor, json_deserializer

class ImgPredictor(RealTimePredictor):
    def __init__(self, endpoint_name, sagemaker_session):
        super(ImgPredictor, self).__init__(endpoint_name, sagemaker_session, content_type='application/x-image', 
                                           deserializer = json_deserializer ,accept='application/json')

, а deploy.py содержит необходимые функции input_fn, output_fn, model_fn и Forext_fn. Кроме того, в исходном каталоге отсутствовал файл require.txt.

...