Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejecutar scripts con su propio contenedor de procesamiento
Puede usar scripts de scikit-learn para preprocesar datos y evaluar sus modelos. Para saber cómo ejecutar scripts de scikit-learn para realizar estas tareas, consulte el cuaderno de muestras de Procesamiento de scikit-learnScriptProcessor deAmazon SageMaker Python SDK para el procesamiento.
El siguiente ejemplo muestra un flujo de trabajo general para usar una clase ScriptProcessor con su propio contenedor de procesamiento. El flujo de trabajo muestra cómo crear su propia imagen, construir su contenedor y usar una clase ScriptProcessor para ejecutar un guión de preprocesamiento de Python con el contenedor. El trabajo de procesamiento procesa los datos de entrada y guarda los datos procesados en Amazon Simple Storage Service (Amazon S3).
Antes de usar los siguientes ejemplos, debe tener sus propios datos de entrada y un guión de Python preparado para procesar los datos. Para ver un ejemplo guiado de principio a fin de este proceso, consulte el cuaderno de muestras de Procesamiento de scikit-learn
-
Cree un directorio de Docker y agregue el archivo Dockerfile utilizado para crear el contenedor de procesamiento. Instale pandas y scikit-learn en él. (También puede instalar sus propias dependencias con un comando
RUNsimilar.)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"] -
Cree el contenedor mediante el comando docker, cree un repositorio de Amazon Elastic Container Registry (Amazon ECR) y envíe la imagen a 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 -
Configure el
ScriptProcessordesde el SDK de SageMaker Python para ejecutar el guión. Sustituyaimage_uripor el URI de la imagen que haya creado y sustituyarole_arnpor el ARN de un rol AWS Identity and Access Management que tenga acceso a su bucket de Amazon S3 de destino.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') -
Ejecute el guión. Sustituya
preprocessing.pypor el nombre de su propio guión de procesamiento de Python y sustituyas3://path/to/my/input-data.csvpor la ruta de Amazon S3 a los datos de entrada.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')])
Puede usar el mismo procedimiento con otra dependencia de biblioteca o de sistema. También puede utilizar las imágenes de Docker existentes. Esto incluye las imágenes que ejecute en otras plataformas, como Kubernetes