概要: ScriptProcessorと SageMaker 地理空間コンテナを使用して処理ジョブを実行する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

概要: ScriptProcessorと SageMaker 地理空間コンテナを使用して処理ジョブを実行する

SageMaker 地理空間は、専用の処理コンテナ を提供します081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest。このコンテナは、Amazon SageMaker Processing でジョブを実行するときに使用できます。Amazon SageMaker Python SDK for Processing で利用可能な ScriptProcessor クラスのインスタンスを作成するときは、この を指定しますimage_uri

注記

処理ジョブを開始しようとしたときにResourceLimit超過エラーが発生した場合は、クォータの引き上げをリクエストする必要があります。Service Quotas クォータ引き上げリクエストを開始するには、「Service Quotas ユーザーガイド」の「クォータ引き上げのリクエストService Quotas」を参照してください。

ScriptProcessor を使用するための前提条件
  1. 地理空間 ML ワークロードを指定するPythonスクリプトを作成しました。

  2. 実行 SageMaker ロールに必要な Amazon S3 バケットへのアクセス権を付与しました。

  3. コンテナにインポートするデータを準備します。Amazon SageMaker Processing ジョブは、 を "ManifestFile"または にs3_data_type等しく設定することをサポートします"S3Prefix"

次の手順は、地理空間コンテナを使用して のインスタンスを作成し、Amazon SageMaker Processing SageMaker ジョブScriptProcessorを送信する方法を示しています。

SageMaker 地理空間コンテナを使用してScriptProcessorインスタンスを作成し、Amazon SageMaker Processing ジョブを送信するには
  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 )

    execution_role_arn を、Amazon S3 に保存されている入力データ、および処理ジョブで呼び出すその他の AWS サービスにアクセスできる実行ロールの SageMaker ARN に置き換えます。instance_count および は、処理ジョブの要件instance_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 ) ] )
    • preprocessing.py を独自の Python データ処理スクリプトの名前に置き換えます。

    • 処理ジョブは、入力データをフォーマットするための 2 つの方法をサポートしています。処理ジョブのすべての入力データを指すマニフェストファイルを作成するか、個々のデータ入力ごとに共通のプレフィックスを使用できます。にs3_manifest_uri等しいマニフェストファイルセットを作成した場合"ManifestFile"。にs3_manifest_uri等しいファイルプレフィックスセットを使用した場合"S3Prefix"。を使用してデータへのパスを指定しますsource

    • 処理ジョブデータは、次の 2 つの方法で配布できます。

      • s3_data_distribution_typeに等しく設定して、すべての処理インスタンスにデータを分散しますFullyReplicated

      • を にs3_data_distribution_type等しく設定して、Amazon S3 キーに基づいてデータをシャードに分散しますShardedByS3Key。1 ShardedByS3Keyつのデータシャードを使用すると、各処理インスタンスに送信されます。

    スクリプトを使用して SageMaker 地理空間データを処理できます。このスクリプトは、ステップ 3: NDVI を計算できるスクリプトの記述で確認できます。.run() API オペレーションの詳細については、run「Amazon SageMaker Python SDK for Processing 」の「」を参照してください。

処理ジョブの進行状況をモニタリングするために、 ProcessingJobs クラスは describeメソッドをサポートします。このメソッドは API DescribeProcessingJobコールからのレスポンスを返します。詳細については、DescribeProcessingJob「Amazon SageMaker API リファレンス」の「」を参照してください。

次のトピックでは、 SageMaker 地理空間コンテナを使用して ScriptProcessor クラスのインスタンスを作成する方法と、それを使用してSentinel-2画像で正規化された差動植物インデックス (NDVI) を計算する方法について説明します。