概述:使用ScriptProcessor和 SageMaker 地理空间容器运行处理作业 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

概述:使用ScriptProcessor和 SageMaker 地理空间容器运行处理作业

SageMaker geospatial 提供了一个专门构建的处理容器,。081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest在使用 Amazon SageMaker Processing 运行任务时,您可以使用此容器。当您创建可通过 Amaz SageMaker on Python 软件开发工具包进行处理的ScriptProcessor类的实例时,请指定该实例image_uri

注意

如果您在尝试启动处理任务时收到 “ResourceLimit已超限” 错误,则需要申请增加配额。要开始申请增加服务限额,请参阅《服务限额用户指南》中的申请增加限额

使用 ScriptProcessor 的先决条件
  1. 您已创建用于指定地理空间 ML 工作负载的 Python 脚本。

  2. 您已向 SageMaker 执行角色授予访问所需任何 Amazon S3 存储桶的权限。

  3. 准备好要导入到容器中的数据。Ama SageMaker zon Processing 任务支持将s3_data_type等于"ManifestFile"或设置为"S3Prefix"

以下过程向您展示如何使用 SageMaker 地理空间容器创建实例ScriptProcessor和提交 Amazon P SageMaker rocessing 任务。

使用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 )

    将 e xecution_role_ arn 替换为可以访问存储在 Amazon S3 中的输入数据以及您要在处理任务中调用的任何 Amazon 其他服务的执行角色的 ARN。 SageMaker您可以更新 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 ) ] )
    • 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 操作的更多信息,请参阅run用于处理的 Amaz SageMaker on Python 软件开发工具包

为了监控处理作业的进度,ProcessingJobs 类支持一种 describe 方法。此方法返回 DescribeProcessingJob API 调用的响应。要了解更多信息,请参阅DescribeProcessingJob亚马逊 SageMaker API 参考》。

下一个主题将向您展示如何使用 SageMaker 地理空间容器创建该ScriptProcessor类的实例,以及如何使用它来计算包含图像的归一化差异植被指数 (NDVI)。Sentinel-2