本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
概觀:使用ScriptProcessor
和地理 SageMaker 空間容器執行處理工作
SageMaker 地理空間提供了一個專門構建的處理容器,. 081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest
您可以在使用 Amazon SageMaker 處理執行任務時使用此容器。當您建立可透過 Amazon SageMaker Python 進行處理的ScriptProcessor
image_uri
。
注意
如果您在嘗試啟動處理工作時收到ResourceLimitExceeded
錯誤訊息,您必須要求提高配額。若要開始 Service Quotas 配額增加請求,請參閱 Service Quotas 使用者指南中的請求增加配額。
使用 ScriptProcessor
的先決條件
-
您已建立指定地理空間機器學習 (ML) 工作負載的 Python 指令碼。
-
您已將 SageMaker 執行角色存取權授予任何所需 Amazon S3 儲存貯體的權限。
-
準備要匯入容器的資料。Amazon SageMaker 處理任務支援將
s3_data_type
等於"ManifestFile"
或設定為"S3Prefix"
。
下列程序說明如何使用地理 SageMaker 空間容器建立 Amazon SageMaker 處理任務的執行個體ScriptProcessor
並提交。
使用地理SageMaker 空間容器建立ScriptProcessor
執行個體並提交 Amazon SageMaker 處理任務
-
使用SageMaker 地理空間圖像實例化
ScriptProcessor
類的實例:from sagemaker.processing import ScriptProcessor, ProcessingInput, ProcessingOutput sm_session = sagemaker.session.Session() execution_role_arn = sagemaker.get_execution_role() # purpose-built geospatial container image_uri =
'081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest'
script_processor = ScriptProcessor( command=['python3'], image_uri=image_uri, role=execution_role_arn
, instance_count=4, instance_type='ml.m5.4xlarge', sagemaker_session=sm_session
)Replace (取代)
execution_role_arn
具有可存取 Amazon S3 中存放的輸入資料以及您想要在處理任 AWS 務中呼叫的任何其他服務的 SageMaker執行角色。ARN您可以更新instance_count
和instance_type
以符合處理任務的需求。 -
若要啟動處理任務,請使用
.run()
方法:# Can be replaced with any S3 compliant string for the name of the folder. s3_folder =
geospatial-data-analysis
# Use .default_bucket() to get the name of the S3 bucket associated with your current SageMaker session s3_bucket = sm_session.default_bucket() s3_manifest_uri = f's3://{s3_bucket}/{s3_folder}/manifest.json' s3_prefix_uri = f's3://{s3_bucket}/{s3_folder}/image-prefix
script_processor.run( code='preprocessing.py
', inputs=[ ProcessingInput( source=s3_manifest_uri
|s3_prefix_uri
, destination='/opt/ml/processing/input_data/', s3_data_type="ManifestFile"
|"S3Prefix"
, s3_data_distribution_type="ShardedByS3Key"
|"FullyReplicated"
) ], outputs=[ ProcessingOutput( source='/opt/ml/processing/output_data/', destination=s3_output_prefix_url
) ] )-
Replace (取代)
preprocessing.py
使用您自己的 Python 數據處理腳本的名稱。 -
處理工作支援兩種格式化輸入資料的方法。您可以建立指向處理工作所有輸入資料的資訊清單檔案,也可以在每個個別資料輸入上使用通用首碼。如果您建立了一個資訊清單檔案,設定
s3_manifest_uri
等於"ManifestFile"
。如果您使用的檔案首碼,設定s3_manifest_uri
等於"S3Prefix"
。您使用source
指定資料的路徑。 -
您可以透過兩種方式發佈處理工作資料:
-
設定
s3_data_distribution_type
等於FullyReplicated
,來將資料發佈至所有處理執行個體。 -
設定
s3_data_distribution_type
等於ShardedByS3Key
,根據 Amazon S3 金鑰在碎片中發佈資料。當您使用ShardedByS3Key
時,資料的一個碎片會被發送到每個處理執行個體。
-
您可以使用腳本來處 SageMaker 理空間資料。該腳本可以在步驟 3:編寫可以計算 NDVI. 若要進一步了解此
.run()
API操作,請參閱 Amazon SageMaker Pythonrun
中的進SDK行處理。 -
若要監控處理任務的進度,ProcessingJobs
類別支援 describe
DescribeProcessingJob
API調用的響應。要進一步了解,請參閱 Amazon SageMaker API 參考DescribeProcessingJob
中的。
下一個主題說明如何使用 SageMaker 地理空間容器建立ScriptProcessor
類別的實體,然後如何使用它來計算包含Sentinel-2影像的標準化差異植被索引 (NDVI)。