Überblick: Führen Sie Verarbeitungsaufträge mithilfe eines Geodatencontainers aus ScriptProcessor SageMaker - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Überblick: Führen Sie Verarbeitungsaufträge mithilfe eines Geodatencontainers aus ScriptProcessor SageMaker

SageMaker Geospatial bietet einen speziell dafür entwickelten Verarbeitungscontainer,. 081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest Sie können diesen Container verwenden, wenn Sie einen Job mit Amazon SageMaker Processing ausführen. Wenn Sie eine Instanz der ScriptProcessorKlasse erstellen, die über das Amazon SageMaker Python SDK for Processing verfügbar ist, geben Sie dies animage_uri.

Anmerkung

Wenn Sie beim Versuch, einen Verarbeitungsjob zu starten, eine ResourceLimitExceededFehlermeldung erhalten, müssen Sie eine Erhöhung des Kontingents beantragen. Informationen zur Beantragung einer Quotenerhöhung für Service Quotas finden Sie unter Beantragung einer Quotenerhöhung im Service Quotas-Benutzerhandbuch

Voraussetzungen für die Verwendung von ScriptProcessor
  1. Sie haben ein Python Skript erstellt, das Ihre Geospatial-ML-Arbeitslast spezifiziert.

  2. Sie haben der SageMaker Ausführungsrolle Zugriff auf alle benötigten Amazon S3 S3-Buckets gewährt.

  3. Bereiten Sie Ihre Daten für den Import in den Container vor. Amazon SageMaker Processing Jobs unterstützen entweder die Einstellung s3_data_type gleich "ManifestFile" oder gleich"S3Prefix".

Das folgende Verfahren zeigt Ihnen, wie Sie mithilfe des SageMaker Geospatial-Containers eine Instanz von Amazon SageMaker Processing erstellen ScriptProcessor und einen Auftrag einreichen.

So erstellen Sie eine ScriptProcessor Instance und reichen einen Amazon SageMaker Processing-Job mithilfe eines SageMaker Geodatencontainers ein
  1. Instanziieren Sie eine Instanz der ScriptProcessor Klasse mithilfe des Geodatenbilds: 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 )

    Ersetzen Sie execution_role_arn durch den ARN der SageMaker Ausführungsrolle, die Zugriff auf die in Amazon S3 gespeicherten Eingabedaten und alle anderen AWS Services hat, die Sie in Ihrem Verarbeitungsjob aufrufen möchten. Sie können die instance_count und die instance_type aktualisieren, um sie an die Anforderungen Ihres Verarbeitungsjobs anzupassen.

  2. Verwenden Sie die folgende .run() Methode, um einen Verarbeitungsjob zu starten:

    # 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 ) ] )
    • Ersetzen Sie preprocessing.py durch den Namen Ihres eigenen Python-Datenverarbeitungsskripts.

    • Ein Verarbeitungsjob unterstützt zwei Methoden zum Formatieren Ihrer Eingabedaten. Sie können entweder eine Manifestdatei erstellen, die auf alle Eingabedaten für Ihren Verarbeitungsauftrag verweist, oder Sie können für jede einzelne Dateneingabe ein gemeinsames Präfix verwenden. Wenn Sie eine Manifestdatei erstellt haben, die s3_manifest_uri gleich "ManifestFile" ist. Wenn Sie ein Dateipräfix verwendet haben, das s3_manifest_uri gleich "S3Prefix" gesetzt ist. Sie geben den Pfad zu Ihren Daten mit source an.

    • Sie können die Daten Ihres Verarbeitungsauftrags auf zwei Arten verteilen:

      • Verteilen Sie Ihre Daten auf alle Verarbeitungsinstances, indem Sie s3_data_distribution_type gleich FullyReplicated setzen.

      • Verteilen Sie Ihre Daten auf der Grundlage des Amazon S3-Schlüssels in Shards, indem Sie s3_data_distribution_type gleich ShardedByS3Key setzen. Bei der Verwendung von ShardedByS3Key wird an jede Verarbeitungsinstance ein Datenbruchstück gesendet.

    Sie können ein Skript verwenden, um Geodaten zu verarbeiten. SageMaker Dieses Skript finden Sie in Schritt 3: Schreiben eines Skripts, das den NDVI berechnen kann. Weitere Informationen zum .run() API-Betrieb finden Sie runim Amazon SageMaker Python SDK for Processing.

Um den Fortschritt Ihres Verarbeitungsauftrags zu überwachen, unterstützt die ProcessingJobs Klasse eine describe Methode. Diese Methode gibt eine Antwort vom DescribeProcessingJob API-Aufruf zurück. Weitere Informationen finden Sie DescribeProcessingJobin der Amazon SageMaker API-Referenz.

Im nächsten Thema erfahren Sie, wie Sie mithilfe des SageMaker Geospatial-Containers eine Instanz der ScriptProcessor Klasse erstellen und anschließend anhand von Bildern den Normalized Difference Vegetation Index (NDVI) berechnen. Sentinel-2