如何在亚马逊Sagemaker中加载经过训练的模型?

时间:2020-07-19 12:36:37

标签: amazon-web-services amazon-s3 amazon-sagemaker

我正在关注this example,了解如何在Amazon-sagemaker中训练机器学习模型。

data_location = 's3://{}/kmeans_highlevel_example/data'.format(bucket)
output_location = 's3://{}/kmeans_highlevel_example/output'.format(bucket)

print('training data will be uploaded to: {}'.format(data_location))
print('training artifacts will be uploaded to: {}'.format(output_location))

kmeans = KMeans(role=role,
                train_instance_count=2,
                train_instance_type='ml.c4.8xlarge',
                output_path=output_location,
                k=10,
                epochs=100,
                data_location=data_location)

因此,在调用fit函数之后,应该将模型保存在S3存储桶中?下次如何加载此模型?

1 个答案:

答案 0 :(得分:2)

这可以通过结合使用sagemaker库和Inference Model来完成。

model = sagemaker.model.Model(
    image=image
    model_data='s3://bucket/model.tar.gz',
    role=role_arn)

您要传递的选项是:

  • image-这是您用于推理的ECR图像(应该用于您尝试使用的算法)。路径可用here
  • model_data-这是模型存储在tar.gz压缩档案中的路径。
  • role-这是一个角色角色,可以同时从ECR中提取图像并获取s3存档。

成功完成此操作后,您需要设置一个端点,这可以通过在笔记本中通过deploy function执行以下操作来完成。

model.deploy(
   initial_instance_count=1,
   instance_type='ml.p2.xlarge'
)