本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Package 一個模型 (Boto3)
您可以使用 建立 SageMaker Edge Manager 封裝任務 AWS SDK for Python (Boto3)。繼續之前,請確認您已滿足完成事前準備。
若要請求 Edge 封裝任務,請使用 CreateEdgePackagingJob
。您需要為邊緣包裝工作提供名稱、 SageMaker Neo 編譯工作的名稱、角色 Amazon 資源名稱 (ARN)、模型名稱、模型版本,以及URI要存放包裝工作輸出的 Amazon S3 儲存貯體。請注意,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 的完整清單APIs,請參閱 Boto3 文件