本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以使用 AWS SDK for Python (Boto3)建立 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 文件