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.
Ausführen von Scripts mit Ihrem eigenen Verarbeitungscontainer
Sie können scikit-learn-Skripte verwenden, um Daten vorzuverarbeiten und Ihre Modelle auszuwerten. Um zu sehen, wie man scikit-learn Skripte ausführt, um diese Aufgaben zu erfüllen, siehe das scikit-learn ProcessingScriptProcessor
Klasse aus Amazon SageMaker Python SDK for Processing.
Das folgende Beispiel zeigt einen allgemeinen Arbeitsablauf für die Verwendung einer ScriptProcessor
Klasse mit Ihrem eigenen Verarbeitungscontainer. Der Workflow zeigt, wie Sie Ihr eigenes Image erstellen, Ihren Container erstellen und eine ScriptProcessor
Klasse verwenden, um ein Python-Vorverarbeitungsskript mit dem Container auszuführen. Der Verarbeitungsjob verarbeitet Ihre Eingabedaten und speichert die verarbeiteten Daten in Amazon Simple Storage Service (Amazon S3).
Bevor Sie die folgenden Beispiele verwenden können, müssen Sie Ihre eigenen Eingabedaten und ein Python-Skript für die Verarbeitung Ihrer Daten vorbereitet haben. Ein end-to-end Beispiel mit Anleitungen für diesen Prozess finden Sie im Scikit-Learn Processing Beispiel-Notizbuch
-
Erstellen Sie eine Docker-Registry und fügen Sie die Docker-Datei hinzu, die zum Erstellen des Verarbeitungscontainers verwendet wird. Installieren Sie darin Pandas und scikit-learn. (Sie können mit einem ähnlichen
RUN
-Befehl auch Ihre eigenen Abhängigkeiten installieren.)mkdir docker %%writefile docker/Dockerfile FROM python:3.7-slim-buster RUN pip3 install pandas==0.25.3 scikit-learn==0.21.3 ENV PYTHONUNBUFFERED=TRUE ENTRYPOINT ["python3"]
-
Erstellen Sie den Container mit dem Befehl docker, erstellen Sie ein Amazon Elastic Container Registry (AmazonECR) -Repository und übertragen Sie das Image an AmazonECR.
import boto3 account_id = boto3.client('sts').get_caller_identity().get('Account') region = boto3.Session().region_name ecr_repository = 'sagemaker-processing-container' tag = ':latest' processing_repository_uri = '{}.dkr.ecr.{}.amazonaws.com/{}'.format(account_id, region, ecr_repository + tag) # Create ECR repository and push docker image !docker build -t $ecr_repository docker !aws ecr get-login-password --region {region} | docker login --username AWS --password-stdin {account_id}.dkr.ecr.{region}.amazonaws.com !aws ecr create-repository --repository-name $ecr_repository !docker tag {ecr_repository + tag} $processing_repository_uri !docker push $processing_repository_uri
-
Richten Sie das
ScriptProcessor
von SageMaker Python aus einSDK, um das Skript auszuführen. Ersetzenimage_uri
mit dem URI für das von Ihnen erstellte Bild und ersetzenrole_arn
mit der ARN für eine AWS Identity and Access Management Rolle, die Zugriff auf Ihren Amazon S3 S3-Ziel-Bucket hat.from sagemaker.processing import ScriptProcessor, ProcessingInput, ProcessingOutput script_processor = ScriptProcessor(command=['python3'], image_uri='
image_uri
', role='role_arn
', instance_count=1, instance_type='ml.m5.xlarge') -
Führen Sie das Skript aus. Ersetzen
preprocessing.py
mit dem Namen Ihres eigenen Python-Verarbeitungsskripts und ersetzens3://path/to/my/input-data.csv
mit dem Amazon S3 S3-Pfad zu Ihren Eingabedaten.script_processor.run(code='
preprocessing.py
', inputs=[ProcessingInput( source='s3://path/to/my/input-data.csv
', destination='/opt/ml/processing/input')], outputs=[ProcessingOutput(source='/opt/ml/processing/output/train'), ProcessingOutput(source='/opt/ml/processing/output/validation'), ProcessingOutput(source='/opt/ml/processing/output/test')])
Das gleiche Verfahren kann mit anderen Bibliotheks- oder Systemabhängigkeiten verwendet werden. Sie können auch vorhandene Docker-Images verwenden. Dazu gehören Images, die Sie auf anderen Plattformen wie Kubernetes