Clienterror: An error occured when calling the CreateModel operation
Clienterror: An error occured when calling the CreateModel operation
我想在 sagemaker 中部署 sklearn 模型。我创建了一个训练脚本。
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
谁能说说怎么解决这个问题?
部署模型时,SageMaker 会查找 S3 以找到您训练的模型工件。似乎 s3://tree/sklearn/output/model.tar.gz
处没有经过训练的模型工件。确保在 docker 中适当的本地位置(即 /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')
在此处查看有关 SageMaker 中 Sklearn 的更多信息https://sagemaker.readthedocs.io/en/stable/using_sklearn.html
我想在 sagemaker 中部署 sklearn 模型。我创建了一个训练脚本。
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
谁能说说怎么解决这个问题?
部署模型时,SageMaker 会查找 S3 以找到您训练的模型工件。似乎 s3://tree/sklearn/output/model.tar.gz
处没有经过训练的模型工件。确保在 docker 中适当的本地位置(即 /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')
在此处查看有关 SageMaker 中 Sklearn 的更多信息https://sagemaker.readthedocs.io/en/stable/using_sklearn.html