本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Package 一個模型 (Boto3)
您可以使用 適用於 Python (Boto3) 的 AWS SDK建立 SageMaker Edge Manager 封裝任務。繼續之前,請確認您已滿足完成事前準備。
若要請求 Edge 封裝任務,請使用 CreateEdgePackagingJob
。您需要提供 Edge 封裝任務的名稱、SageMaker Neo 編譯任務的名稱、角色 Amazon Resource Name (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
並提供區分大小寫的 Edge 封裝任務名稱來檢查 Edge 封裝任務的狀態:
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
並提供 Edge 封裝任務的名稱。
sagemaker_client.stop_edge_packaging_job( EdgePackagingJobName=
"edge-packaging-name"
)
如需 Edge Manager API 的完整清單,請參閱 Boto3 文件