本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
打包模型 (Boto3)
您可以使用创建 SageMaker Edge Manager 打包作业 AWS SDK for Python (Boto3)。在继续之前,请确保您已经满足满足先决条件。
要请求边缘打包作业,请使用 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"
)
有关 Edge Manager 的完整列表 APIs,请参阅 Boto3 文档