AWS SageMaker:使用 S3 中托管的经过训练的模型创建终端节点
AWS SageMaker: Create an endpoint using a trained model hosted in S3
我关注了这个tutorial,主要针对jupyter notebook,针对外部处理做了一些微调。我创建了一个项目,可以在本地准备我的数据集,将其上传到 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) 中的模型加载估算器?或者,无论如何,创建一个端点而不再次训练它?
所以,翻到运行很多页后,才发现一个线索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')
请不要忘记在使用后禁用您的端点。这真的很重要!端点按“运行ning”收费,不仅按使用
收费
希望也能帮到你!
使用以下代码部署模型
model = sagemaker.Model(role=role,
model_data=### s3 location of tar.gz file,
image_uri=### the inference image uri,
sagemaker_session=sagemaker_session,
name=## model name)
model_predictor = model.deploy(initial_instance_count=1,
instance_type=instance_type)
初始化预测器
model_predictor = sagemaker.Predictor(endpoint_name= model.endpoint_name)
最终预测使用
model_predictor.predict(##your payload)
我关注了这个tutorial,主要针对jupyter notebook,针对外部处理做了一些微调。我创建了一个项目,可以在本地准备我的数据集,将其上传到 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) 中的模型加载估算器?或者,无论如何,创建一个端点而不再次训练它?
所以,翻到运行很多页后,才发现一个线索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')
请不要忘记在使用后禁用您的端点。这真的很重要!端点按“运行ning”收费,不仅按使用
收费希望也能帮到你!
使用以下代码部署模型
model = sagemaker.Model(role=role, model_data=### s3 location of tar.gz file, image_uri=### the inference image uri, sagemaker_session=sagemaker_session, name=## model name) model_predictor = model.deploy(initial_instance_count=1, instance_type=instance_type)
初始化预测器
model_predictor = sagemaker.Predictor(endpoint_name= model.endpoint_name)
最终预测使用
model_predictor.predict(##your payload)