翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
概要: 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
を指定します。
注記
処理ジョブの開始時に ResourceLimitExceeded
エラーが表示された場合は、クォータの引き上げをリクエストする必要があります。Service Quotas クォータの引き上げリクエストを開始するには、Service Quotas ユーザーガイドの「Requesting a quota increase」を参照してください。
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
を、Amazon S3 に保存されている入力データ、および処理ジョブで呼び出すその他のサービスにアクセスできる SageMaker AI 実行ロールの ARN に置き換えます。 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 データ処理スクリプトの名前に置き換えます。 -
処理ジョブは、入力データをフォーマットするための 2 つの方法をサポートしています。処理ジョブのすべての入力データを指すマニフェストファイルを作成するか、個々の各データ入力に共通のプレフィックスを使用できます。マニフェストファイルを作成した場合は、
s3_manifest_uri
を"ManifestFile"
に設定します。ファイルプレフィックスセットを使用した場合は、s3_manifest_uri
を"S3Prefix"
に設定します。データへのパスは、source
を使用して指定します。 -
処理ジョブデータは、次の 2 つの方法で配布できます。
-
s3_data_distribution_type
をFullyReplicated
に設定して、データをすべての処理インスタンスに配布する。 -
s3_data_distribution_type
をShardedByS3Key
に設定して、Amazon S3 キーに基づいてシャードのデータを分散する。ShardedByS3Key
を使用すると、1 つのデータのシャードが各処理インスタンスに送信されます。
-
SageMaker 地理空間データはスクリプトを使用して処理できます。このスクリプトは、「Step 3: Writing a script that can calculate the NDVI」に含まれています。
.run()
API オペレーションの詳細については、「Amazon SageMaker Python SDK for Processing」の「run
」を参照してください。 -
処理ジョブの進行状況を監視するために、ProcessingJobs
クラスでは describe
DescribeProcessingJob
API コールからのレスポンスを返します。詳細については、DescribeProcessingJob
Amazon SageMaker AI API リファレンス」の「」を参照してください。
次のトピックでは、SageMaker 地理空間コンテナを使用して ScriptProcessor
クラスのインスタンスを作成する方法と、次にそれを使用して Sentinel-2 画像で正規化植生差指数 (NDVI) を計算する方法を示します。