我遵循了这个tutorial,主要用于jupyter笔记本,并对外部处理进行了一些最小的修改。我创建了一个项目,可以在本地准备我的数据集,将其上传到S3,进行训练,最后将模型预测变量部署到同一存储桶中。完美!
因此,经过训练并将其保存在S3存储桶中:
ss_model.fit(inputs=data_channels, logs=True)
在作为端点部署时失败。因此,我发现了以多种方式托管端点的技巧,但不是从已经保存在S3中的模型中获得的。因为要进行托管,您可能需要获取估算器,正常情况下,估算器类似于:
self.estimator = sagemaker.estimator.Estimator(self.training_image,
role,
train_instance_count=1,
train_instance_type='ml.p3.2xlarge',
train_volume_size=50,
train_max_run=360000,
output_path=output,
base_job_name='ss-training',
sagemaker_session=sess)
我的问题是:有没有办法从保存在S3(.tar)中的模型中加载估算器?还是要创建一个端点而无需再次训练?
答案 0 :(得分:3)
因此,在运行许多页面之后,刚刚发现了一条线索here。最后,我发现了如何加载模型并创建端点:
def create_endpoint(self):
sess = sagemaker.Session()
training_image = get_image_uri(sess.boto_region_name, 'semantic-segmentation', repo_version="latest")
role = "YOUR_ROLE_ARN_WITH_SAGEMAKER_EXECUTION"
model = "s3://BUCKET/PREFIX/.../output/model.tar.gz"
sm_model = sagemaker.Model(model_data=model, image=training_image, role=role, sagemaker_session=sess)
sm_model.deploy(initial_instance_count=1, instance_type='ml.p3.2xlarge')
请使用后不要忘记禁用端点。这真的很重要!端点通过“运行”收费,而不仅仅是使用
我希望它也可以帮助您!