概觀:使用ScriptProcessor和地理 SageMaker 空間容器執行處理工作 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

概觀:使用ScriptProcessor和地理 SageMaker 空間容器執行處理工作

SageMaker 地理空間提供了一個專門構建的處理容器,. 081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest 您可以在使用 Amazon SageMaker 處理執行任務時使用此容器。當您建立可透過 Amazon SageMaker Python 進行處理的ScriptProcessor類別執行個體SDK時,請指定此項image_uri

注意

如果您在嘗試啟動處理工作時收到ResourceLimitExceeded錯誤訊息,您必須要求提高配額。若要開始 Service Quotas 配額增加請求,請參閱 Service Quotas 使用者指南中的請求增加配額

使用 ScriptProcessor 的先決條件
  1. 您已建立指定地理空間機器學習 (ML) 工作負載的 Python 指令碼。

  2. 您已將 SageMaker 執行角色存取權授予任何所需 Amazon S3 儲存貯體的權限。

  3. 準備要匯入容器的資料。Amazon SageMaker 處理任務支援將s3_data_type等於"ManifestFile"或設定為"S3Prefix"

下列程序說明如何使用地理 SageMaker 空間容器建立 Amazon SageMaker 處理任務的執行個體ScriptProcessor並提交。

使用地理SageMaker 空間容器建立ScriptProcessor執行個體並提交 Amazon SageMaker 處理任務
  1. 使用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_countinstance_type 以符合處理任務的需求。

  2. 若要啟動處理任務,請使用 .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 Python run中的進SDK行處理

若要監控處理任務的進度,ProcessingJobs 類別支援 describe 方法。此方法返回來自DescribeProcessingJobAPI調用的響應。要進一步了解,請參閱 Amazon SageMaker API 參考DescribeProcessingJob的。

下一個主題說明如何使用 SageMaker 地理空間容器建立ScriptProcessor類別的實體,然後如何使用它來計算包含Sentinel-2影像的標準化差異植被索引 (NDVI)。