Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

212
Vistas
¿Cómo pasar archivos de dependencia a sagemaker SKLearnProcessor y usarlos en Pipeline?

Necesito importar la función de diferentes scripts de python, que se usarán dentro del archivo preprocessing.py . No pude encontrar una manera de pasar los archivos dependientes al objeto SKLearnProcessor , por lo que ModuleNotFoundError .

Código:

 from sagemaker.sklearn.processing import SKLearnProcessor from sagemaker.processing import ProcessingInput, ProcessingOutput sklearn_processor = SKLearnProcessor(framework_version='0.20.0', role=role, instance_type='ml.m5.xlarge', instance_count=1) sklearn_processor.run(code='preprocessing.py', inputs=[ProcessingInput( source=input_data, destination='/opt/ml/processing/input')], outputs=[ProcessingOutput(output_name='train_data', source='/opt/ml/processing/train'), ProcessingOutput(output_name='test_data', source='/opt/ml/processing/test')], arguments=['--train-test-split-ratio', '0.2'] )

Me gustaría pasar, dependent_files = ['file1.py', 'file2.py', 'requirements.txt'] . Entonces, ese preprocessing.py tiene acceso a todos los módulos dependientes.

Y también necesita instalar bibliotecas desde el archivo requirements.txt .

¿Puede compartir algún trabajo o una forma correcta de hacer esto?

Actualización-25-11-2021:

Q1. (Respondido pero buscando resolver usando FrameworkProcessor )

Aquí , la función get_run_args maneja dependencies , source_dir y parámetros de code mediante FrameworkProcessor . ¿Hay alguna forma de que podamos configurar estos parámetros desde ScriptProcessor o SKLearnProcessor o cualquier otro Processor para configurarlos?

Q2.

¿Puede también mostrar alguna referencia para usar nuestro Processor como sagemaker.workflow.steps.ProcessingStep y luego usarlo en sagemaker.workflow.pipeline.Pipeline ?

Para tener Pipeline , ¿necesitamos sagemaker-project como obligatorio o podemos crear Pipeline directamente sin ningún Sagemaker-Project ?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Esto no es compatible con SKLearnProcessor. Debería empaquetar sus dependencias en la imagen de la ventana acoplable y crear un Processor personalizado (por ejemplo, un ScriptProcessor con el image_uri de la imagen de la ventana acoplable que creó).

over 4 years ago · Santiago Trujillo Denunciar

0

Hay un par de opciones para que lo logres.

Uno que es realmente simple es agregar todos los archivos adicionales a una carpeta, por ejemplo:

 . ├── my_package │  ├── file1.py │  ├── file2.py │  └── requirements.txt └── preprocessing.py

Luego envíe esta carpeta completa como otra entrada bajo el mismo /opt/ml/processing/input/code/ , ejemplo:

 from sagemaker.sklearn.processing import SKLearnProcessor from sagemaker.processing import ProcessingInput, ProcessingOutput sklearn_processor = SKLearnProcessor( framework_version="0.20.0", role=role, instance_type="ml.m5.xlarge", instance_count=1, ) sklearn_processor.run( code="preprocessing.py", # <- this gets uploaded as /opt/ml/processing/input/code/preprocessing.py inputs=[ ProcessingInput(source=input_data, destination='/opt/ml/processing/input'), # Send my_package as /opt/ml/processing/input/code/my_package/ ProcessingInput(source='my_package/', destination="/opt/ml/processing/input/code/my_package/") ], outputs=[ ProcessingOutput(output_name="train_data", source="/opt/ml/processing/train"), ProcessingOutput(output_name="test_data", source="/opt/ml/processing/test"), ], arguments=["--train-test-split-ratio", "0.2"], )

Lo que sucede es que sagemaker-python-sdk colocará su argumento code="preprocessing.py" en /opt/ml/processing/input/code/ y tendrá my_package/ en el mismo directorio.

Editar:

Para los requirements.txt , puede agregar a su preprocessing.py :

 import sys import subprocess subprocess.check_call([ sys.executable, "-m", "pip", "install", "-r", "/opt/ml/processing/input/code/my_package/requirements.txt", ])
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda