

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écution d’une tâche de traitement avec scikit-learn
<a name="use-scikit-learn-processing-container"></a>

Vous pouvez utiliser Amazon SageMaker Processing pour traiter des données et évaluer des modèles à l'aide de scripts scikit-learn dans une image Docker fournie par Amazon AI. SageMaker L'exemple suivant montre comment exécuter une tâche Amazon SageMaker Processing à l'aide de scikit-learn.

Pour un exemple de bloc-notes qui montre comment exécuter des scripts scikit-learn à l'aide d'une image Docker fournie et gérée par SageMaker AI pour prétraiter les données et évaluer les modèles, consultez scikit-learn Processing. [https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker_processing/scikit_learn_data_processing_and_model_evaluation](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker_processing/scikit_learn_data_processing_and_model_evaluation) Pour utiliser ce bloc-notes, vous devez installer le SDK SageMaker AI Python pour le traitement. 

Ce bloc-notes exécute une tâche de traitement à l'aide du SDK SageMaker Python pour exécuter un script scikit-learn que vous fournissez. Le script prétraite les données, entraîne un modèle à l'aide d'une tâche d' SageMaker apprentissage, puis exécute une tâche de traitement pour évaluer le modèle entraîné. La tâche de traitement évalue la performance attendue du modèle en production.

Pour en savoir plus sur l'utilisation du SDK SageMaker Python avec des conteneurs de traitement, consultez le SDK [ SageMaker ](https://sagemaker.readthedocs.io/en/stable/) Python. Pour obtenir la liste complète des images Docker prédéfinies disponibles pour les tâches de traitement, consultez [Chemins de registre Docker et exemple de code](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths).

L'exemple de code suivant montre comment exécuter une tâche de traitement à l'aide d'une image Docker scikit-learn fournie et gérée par AI. SageMaker 

```
from sagemaker.core.resources import ProcessingJob

processing_job = ProcessingJob.create(
    processing_job_name="sklearn-processing",
    role_arn=role,
    app_specification={
        "image_uri": "sklearn-processing-image-uri",
        "container_entrypoint": ["python3", "/opt/ml/processing/input/code/preprocessing.py"]
    },
    processing_resources={
        "cluster_config": {
            "instance_count": 1,
            "instance_type": "ml.m5.xlarge",
            "volume_size_in_gb": 30
        }
    },
    processing_inputs=[
        {
            "input_name": "code",
            "s3_input": {
                "s3_uri": "s3://path/to/preprocessing.py",
                "local_path": "/opt/ml/processing/input/code",
                "s3_data_type": "S3Prefix",
                "s3_input_mode": "File"
            }
        },
        {
            "input_name": "input-data",
            "s3_input": {
                "s3_uri": "s3://path/to/my/input-data.csv",
                "local_path": "/opt/ml/processing/input",
                "s3_data_type": "S3Prefix",
                "s3_input_mode": "File"
            }
        }
    ],
    processing_output_config={
        "outputs": [
            {"output_name": "train", "s3_output": {"s3_uri": "s3://output/train", "local_path": "/opt/ml/processing/output/train", "s3_upload_mode": "EndOfJob"}},
            {"output_name": "validation", "s3_output": {"s3_uri": "s3://output/validation", "local_path": "/opt/ml/processing/output/validation", "s3_upload_mode": "EndOfJob"}},
            {"output_name": "test", "s3_output": {"s3_uri": "s3://output/test", "local_path": "/opt/ml/processing/output/test", "s3_upload_mode": "EndOfJob"}}
        ]
    }
)
```

Pour traiter les données en parallèle à l'aide Scikit-Learn d'Amazon SageMaker Processing, vous pouvez partitionner les objets d'entrée à l'aide d'une clé S3 en définissant `s3_data_distribution_type='ShardedByS3Key'` dans a de `ProcessingInput` sorte que chaque instance reçoive à peu près le même nombre d'objets d'entrée.