Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

219
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!