打包模型 (Boto3) - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

打包模型 (Boto3)

您可以使用 Amazon SDK for Python (Boto3) 创建 SageMaker Edge Manager 打包作业。在继续之前,请确保您已经满足先决条件

要请求边缘打包作业,请使用 CreateEdgePackagingJob。您需要为边缘打包作业提供名称、SageMaker Neo 编译作业的名称、角色的 Amazon 资源名称 (ARN)、模型的名称和版本以及要存储打包作业输出的 Amazon S3 存储桶 URI。请注意,Edge Manager 打包作业名称和 SageMaker Neo 编译作业名称都区分大小写。

# Import Amazon SDK for Python (Boto3) import boto3 # Create Edge client so you can submit a packaging job sagemaker_client = boto3.client("sagemaker", region_name='aws-region') sagemaker_client.create_edge_packaging_job( EdgePackagingJobName="edge-packaging-name", CompilationJobName="neo-compilation-name", RoleArn="arn:aws:iam::99999999999:role/rolename", ModelName="sample-model-name", ModelVersion="model-version", OutputConfig={ "S3OutputLocation": "s3://your-bucket/", } )

您可以使用 DescribeEdgePackagingJob 并提供区分大小写的边缘打包作业名称来检查边缘打包作业的状态:

response = sagemaker_client.describe_edge_packaging_job( EdgePackagingJobName="edge-packaging-name")

这将返回一个可用于轮询打包作业状态的字典:

# Optional - Poll every 30 sec to check completion status import time while True: response = sagemaker_client.describe_edge_packaging_job( EdgePackagingJobName="edge-packaging-name") if response['EdgePackagingJobStatus'] == 'Completed': break elif response['EdgePackagingJobStatus'] == 'Failed': raise RuntimeError('Packaging job failed') print('Packaging model...') time.sleep(30) print('Done!')

有关打包作业的列表,请使用 ListEdgePackagingJobs。您可以使用此 API 搜索特定的打包作业。提供部分名称以筛选 NameContains 的打包作业名称,提供 ModelNameContains 的部分名称以筛选模型名称中包含您提供的名称的作业。还可以指定使用 SortBy 对哪一列进行排序,以及使用 SortOrder 按哪个方向排序(AscendingDescending)。

sagemaker_client.list_edge_packaging_jobs( "NameContains": "sample", "ModelNameContains": "sample", "SortBy": "column-name", "SortOrder": "Descending" )

要停止打包作业,请使用 StopEdgePackagingJob 并提供边缘打包作业的名称。

sagemaker_client.stop_edge_packaging_job( EdgePackagingJobName="edge-packaging-name" )

有关 Edge Manager API 的完整列表,请参阅 Boto3 文档