Panoramica: Esegui i processi di elaborazione utilizzando ScriptProcessor e un container SageMaker geospaziale
SageMaker Geospatial fornisce un container di elaborazione appositamente progettato, 081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest. Puoi utilizzare questo container durante l'esecuzione di un processo con Amazon SageMaker Processing. Quando crei un'istanza della classe ScriptProcessorimage_uri.
Nota
Se quando provi ad avviare un processo di elaborazione ricevi un errore ResourceLimitExceeded, devi richiedere un aumento della quota. Per richiedere un aumento della quota in Service Quotas, consulta Requesting a quota increase in Guida per l'utente di Service Quotas
Prerequisiti per l'utilizzo di ScriptProcessor
-
Aver creato uno script Python che specifica il tuo carico di lavoro ML geospaziale.
-
Aver concesso al ruolo di esecuzione di SageMaker AI l’accesso a tutti i bucket Amazon S3 necessari.
-
Preparazione dei dati per l'importazione nel container. I processi di Amazon SageMaker Processing supportano l'impostazione di
s3_data_typeuguale a"ManifestFile"o a"S3Prefix".
La procedura seguente mostra come creare un'istanza ScriptProcessor e inviare un processo di Amazon SageMaker Processing utilizzando il container SageMaker geospaziale.
Per creare un'istanza ScriptProcessor e inviare un processo di Elaborazione Amazon SageMaker utilizzando un container SageMaker geospaziale
-
Crea un'istanza della classe
ScriptProcessorutilizzando l'immagine SageMaker geospaziale: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)Sostituisci
execution_role_arncon l’ARN del ruolo di esecuzione di SageMaker che ha accesso ai dati di input archiviati in Amazon S3 e qualsiasi altro servizio AWS che desideri chiamare nel processo di elaborazione. Puoi aggiornareinstance_counteinstance_typein modo che soddisfino i requisiti del tuo processo di elaborazione. -
Per avviare un processo di elaborazione, utilizza il metodo
.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-prefixscript_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) ] )-
Sostituisci
preprocessing.pycon il nome del tuo script di elaborazione di dati in Python. -
Un processo di elaborazione supporta due metodi per formattare i tuoi dati di input. Puoi creare un file manifest che rimandi a tutti i dati di input per il tuo processo di elaborazione oppure utilizzare un prefisso comune su ogni singolo input di dati. Se hai creato un file manifest, imposta
s3_manifest_uriuguale a"ManifestFile". Se hai utilizzato un prefisso del file, impostas3_manifest_uriuguale a"S3Prefix". Specifica il percorso dei tuoi dati utilizzandosource. -
Puoi distribuire i dati del tuo processo di elaborazione in due modi:
-
Distribuisci i tuoi dati su tutte le istanze di elaborazione impostando
s3_data_distribution_typeuguale aFullyReplicated. -
Distribuisci i tuoi dati in shard basati sulla chiave Amazon S3 impostando
s3_data_distribution_typeuguale aShardedByS3Key. Quando utilizziShardedByS3Key, a ogni istanza di elaborazione viene inviato uno shard di dati.
-
Puoi utilizzare uno script per elaborare i dati di SageMaker Geospatial. Lo script è disponibile nella Fase 3: scrittura di uno script in grado di calcolare l'NDVI. Per ulteriori informazioni sull’operazione API
.run(), consultarunin Amazon SageMaker Python SDK for Processing. -
Per monitorare l'avanzamento del tuo processo di elaborazione, la classe ProcessingJobs supporta un metodo describeDescribeProcessingJob. Per ulteriori informazioni, consulta DescribeProcessingJob nella documentazione di riferimento dell’API di Amazon SageMaker AI.
L’argomento successivo spiega come creare un’istanza della classe ScriptProcessor con il container di dati geospaziali SageMaker e come utilizzarla per calcolare l’indice di vegetazione della differenza normalizzata (NDVI) con le immagini Sentinel-2.