本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SageMaker 地理空間提供專門建置的容器,081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest
。您可以在使用 Amazon SageMaker Processing 執行任務時使用此容器。當您建立可透過 Amazon SageMaker Python SDK 進行處理的 ScriptProcessor
image_uri
。
注意
如果您在嘗試啟動處理任務時收到 ResourceLimitExceeded
錯誤,則必須請求增加配額。若要開始 Service Quotas 配額增加請求,請參閱 Service Quotas 使用者指南中的請求增加配額。
使用 ScriptProcessor
的先決條件
-
您已建立指定地理空間機器學習 (ML) 工作負載的 Python 指令碼。
-
您已授予 SageMaker AI 執行角色存取任何所需的 Amazon S3 儲存貯體的權限。
-
準備要匯入容器的資料。Amazon SageMaker Processing 任務支援將
s3_data_type
設定為等於"ManifestFile"
或設定為"S3Prefix"
。
下列程序說明如何使用 SageMaker 地理空間容器,建立 ScriptProcessor
執行個體並提交 Amazon SageMaker Processing 任務。
若要使用 SageMaker 地理空間容器建立 ScriptProcessor
執行個體並提交 Amazon SageMaker Processing 任務
-
使用 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
)將
execution_role_arn
取代為 SageMaker AI 執行角色的 ARN,該角色可存取存放在 Amazon S3 中的輸入資料,以及您想要在處理任務中呼叫的任何其他 AWS 服務。您可以更新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
) ] )-
將
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 Python SDK中的run
。 -
若要監控處理任務的進度,ProcessingJobs
類別支援 describe
DescribeProcessingJob
API 呼叫的回應。若要進一步了解,請參閱《DescribeProcessingJob
Amazon SageMaker AI API 參考》中的 。
下一個主題說明如何使用 SageMaker 地理空間容器建立 ScriptProcessor
類別的執行個體,然後如何使用它來計算具有Sentinel-2影像的標準化差異植被索引 (NDVI)。