本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
打包模型 (Boto3)
您可以使用创建 SageMaker Edge Manager 打包作业 适用于 Python (Boto3) 的 AWS SDK。在继续之前,请确保您已经满足满足先决条件。
要请求边缘打包作业,请使用 CreateEdgePackagingJob。您需要为边缘打包任务提供名称、 SageMaker Neo 编译任务的名称、角色的亚马逊资源名称 (ARN)、模型的名称、模型的版本以及要存储打包任务输出的 Amazon S3 存储桶 URI。请注意,Edge Manager 打包作业名称和 SageMaker Neo 编译作业名称区分大小写。
# Import AWS 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 按哪个方向排序(Ascending 或 Descending)。
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")
有关边缘管理器的完整列表 APIs,请参阅 Boto3 文档