Clienterror: произошла ошибка при вызове операции CreateModel - PullRequest
0 голосов
/ 19 июня 2019

Я хочу развернуть модель sklearn в sagemaker.Я создал учебный скрипт.

scripPath = 'sklearn.py'

sklearn=SKLearn(entry_point=scripPath, train_instance_type='ml.m5.xlarge', role=role, output_path='s3://{}/{}/output'.format(bucket,prefix), sagemaker_session=session) sklearn.fit({"train-dir' : train_input})

Когда я его развернул predictor=sklearn.deploy(initial_count=1,instance_type='ml.m5.xlarge')

Он выбрасывает,Clienterror: An error occured when calling the CreateModel operation:Could not find model data at s3://tree/sklearn/output/model.tar.gz

Кто-нибудь может сказать, как решить эту проблему?

1 Ответ

1 голос
/ 19 июня 2019

При развертывании моделей SageMaker ищет S3, чтобы найти ваш обученный артефакт модели. Кажется, что на s3://tree/sklearn/output/model.tar.gz нет обученного модельного артефакта. Не забудьте сохранить артефакт модели в своем учебном скрипте в соответствующем локальном местоположении в докере /opt/ml/model. например, в вашем учебном скрипте это может выглядеть так:

joblib.dump(model, /opt/ml/model/mymodel.joblib)

После обучения SageMaker скопирует содержимое /opt/ml/model в s3 в месте output_path.

Если вы развернете в том же сеансе, model.deploy() автоматически отобразится на путь артефакта. Если вы хотите развернуть модель, которую вы изучали в другом месте, возможно, во время другого сеанса или на другом оборудовании, вам необходимо явно создать экземпляр модели перед развертыванием

from sagemaker.sklearn.model import SKLearnModel

model = SKLearnModel(
    model_data='s3://...model.tar.gz',  # your artifact
    role=get_execution_role(),
    entry_point='script.py')  # script containing inference functions

model.deploy(
    instance_type='ml.m5.xlarge',
    initial_instance_count=1,
    endpoint_name='your_endpoint_name')

Подробнее о Sklearn в SageMaker можно узнать здесь https://sagemaker.readthedocs.io/en/stable/using_sklearn.html

...