Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exécuter des scripts avec votre propre conteneur de traitement
Vous pouvez utiliser des scripts scikit-learn pour prétraiter les données et évaluer vos modèles. Pour savoir comment exécuter des scripts scikit-learn pour effectuer ces tâches, veuillez consulter l'exemple de bloc-notes scikit-learn ProcessingScriptProcessor
classe du SDK Amazon SageMaker Python pour le traitement.
L'exemple suivant montre un flux de travail général pour utiliser une classe ScriptProcessor
avec votre propre conteneur de traitement. Le flux de travail montre comment créer votre propre image, créer votre conteneur et utiliser une classe ScriptProcessor
pour exécuter un script de prétraitement Python avec le conteneur. La tâche de traitement traite vos données d'entrée et enregistre les données traitées dans Amazon Simple Storage Service (Amazon S3).
Avant d'utiliser les exemples suivants, vous devez disposer de vos propres données d'entrée et d'un script Python préparé pour traiter vos données. Pour un end-to-end exemple guidé de ce processus, reportez-vous au carnet d'exemples de traitement scikit-learn
-
Créez un répertoire Docker et ajoutez le fichier Dockerfile utilisé pour créer le conteneur de traitement. Installez-y des pandas et scikit-learn. (Vous pouvez également installer vos propres dépendances avec une commande
RUN
similaire.)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"]
-
Créez le conteneur à l'aide de la commande docker, créez un référentiel Amazon Elastic Container Registry (Amazon ECR) et envoyez l'image à Amazon ECR.
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
-
Configurez le
ScriptProcessor
à partir du SDK SageMaker Python pour exécuter le script. Remplacez-leimage_uri
par l'URI de l'image que vous avez créée et remplacez-le par l'ARN d'un AWS Identity and Access Management rôlerole_arn
ayant accès à votre compartiment Amazon S3 cible.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') -
Exécutez le script. Remplacez-le
preprocessing.py
par le nom de votre propre script de traitement Python et remplacez-les3://path/to/my/input-data.csv
par le chemin Amazon S3 vers vos données d'entrée.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')])
Vous pouvez utiliser la même procédure avec n'importe quelle autre bibliothèque ou dépendance système. Vous pouvez également utiliser des images Docker existantes. Cela inclut les images que vous exécutez sur d'autres plateformes telles que Kubernetes