Información general: Ejecución de trabajos de procesamiento utilizando el ScriptProcessor y un contenedor geoespacial de SageMaker
SageMaker geoespacial proporciona un contenedor diseñado específicamente, 081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest. Puede usar este contenedor cuando ejecute un trabajo con el procesamiento de Amazon SageMaker. Cuando cree una instancia de la clase ScriptProcessorimage_uri.
nota
Si recibe el error ResourceLimitExceeded al intentar iniciar un trabajo de procesamiento, debe solicitar un aumento de cuota. Para aprender a solicitar un aumento de cuota, consulte Solicitud de aumento de cuota en la Guía del usuario de Service Quotas.
Requisitos previos para utilizar ScriptProcessor
-
Ha creado un script Python que especifica su carga de trabajo de machine learning geoespacial.
-
Ha concedido al rol de ejecución de SageMaker AI acceso a todos los buckets de Amazon S3 que sean necesarios.
-
Preparación de los datos para importarlos al contenedor. Los trabajos de procesamiento de Amazon SageMaker admiten establecer el valor
s3_data_typeigual a"ManifestFile"o a"S3Prefix".
El siguiente procedimiento le muestra cómo crear una instancia del ScriptProcessor y enviar un trabajo de procesamiento de Amazon SageMaker mediante el contenedor geoespacial SageMaker.
Para crear una instancia de ScriptProcessor y enviar un trabajo de procesamiento de Amazon SageMaker mediante un contenedor geoespacial de SageMaker
-
Cree una instancia de la clase
ScriptProcessormediante la imagen geoespacial de SageMaker: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)Sustituya
execution_role_arnpor el ARN del rol de ejecución de SageMaker AI que tenga acceso a los datos de entrada almacenados en Amazon S3 y cualquier otro servicio de AWS al que desee llamar en su trabajo de procesamiento. Puede actualizar elinstance_county elinstance_typepara que coincidan con los requisitos de su trabajo de procesamiento. -
Para iniciar un trabajo de procesamiento, utilice el método
.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) ] )-
Sustituya
preprocessing.pypor el nombre de su propio script de procesamiento de datos de Python. -
Un trabajo de procesamiento admite dos métodos para formatear los datos de entrada. Puede crear un archivo de manifiesto que apunte a todos los datos de entrada para su trabajo de procesamiento o puede usar un prefijo común en cada entrada de datos individual. Si ha creado un archivo de manifiesto, establezca un
s3_manifest_uriigual a"ManifestFile". Si usó un conjunto de prefijos de archivos3_manifest_uriigual a"S3Prefix". Para especificar la ruta de acceso a sus datos, utilicesource. -
Puede distribuir los datos del trabajo de procesamiento de dos maneras:
-
Distribuya sus datos a todas las instancias de procesamiento estableciendo un valor
s3_data_distribution_typeigual aFullyReplicated. -
Distribuya sus datos en fragmentos en particiones en función de la clave de Amazon S3 estableciendo un valor de
s3_data_distribution_typeigual aShardedByS3Key. Cuando se utilizaShardedByS3Key, se envía una partición de datos a cada instancia de procesamiento.
-
Puede utilizar un script para procesar los datos geoespaciales de SageMaker. Ese script se encuentra en el Paso 3: Escritura de un script que pueda calcular el NDVI. Para obtener más información sobre el funcionamiento de la API
.run(), consulterunen Amazon SageMaker Python SDK para el procesamiento. -
Para supervisar el progreso de su trabajo de procesamiento, la clase ProcessingJobs admite un método describeDescribeProcessingJob. Para obtener más información, consulte DescribeProcessingJob en la Referencia de la API de Amazon SageMaker AI.
En el siguiente tema, se muestra cómo crear una instancia de la clase ScriptProcessor mediante el contenedor de SageMaker geoespacial y, a continuación, cómo usarla para calcular el Índice de Vegetación Diferencial Normalizado (NDVI) con imágenes de Sentinel-2.