sha*_*eed 15 python amazon-web-services scikit-learn amazon-sagemaker
我需要从不同的 python 脚本导入函数,该函数将在preprocessing.py文件内部使用。我无法找到将依赖文件传递给SKLearnProcessor对象的方法,因此我得到了ModuleNotFoundError.
代码:
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']
)
Run Code Online (Sandbox Code Playgroud)
我想通过,
dependent_files = ['file1.py', 'file2.py', 'requirements.txt']. 因此,preprocessing.py可以访问所有依赖模块。
并且还需要从requirements.txt文件安装库。
您能分享任何解决方法或正确的方法吗?
2021 年 11 月 25 日更新:
Q1. (已回答,但希望使用 来解决FrameworkProcessor)
这里,函数是使用FrameworkProcessorget_run_args处理dependencies和参数。有什么方法可以从或或任何其他方式设置这些参数吗?source_dircodeScriptProcessorSKLearnProcessorProcessor
Q2。
您还可以展示一些使用我们的Processorassagemaker.workflow.steps.ProcessingStep然后使用 in 的参考吗sagemaker.workflow.pipeline.Pipeline?
对于拥有Pipeline,我们需要作为强制的还是我们可以直接sagemaker-project创建而不需要任何?PipelineSagemaker-Project
Tul*_*nde 24
您可以通过多种选择来实现这一目标。
\n一种非常简单的方法是将所有附加文件添加到一个文件夹中,例如:
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my_package\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file1.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file2.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 requirements.txt\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 preprocessing.py\nRun Code Online (Sandbox Code Playgroud)\n然后将整个文件夹作为同一文件夹下的另一个输入发送/opt/ml/processing/input/code/,例如:
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my_package\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file1.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file2.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 requirements.txt\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 preprocessing.py\nRun Code Online (Sandbox Code Playgroud)\n发生的情况是sagemaker-python-sdk将您的参数放在同一目录下code="preprocessing.py"。/opt/ml/processing/input/code/my_package/
编辑:
\n对于requirements.txt,您可以添加到您的preprocessing.py:
from sagemaker.sklearn.processing import SKLearnProcessor\nfrom sagemaker.processing import ProcessingInput, ProcessingOutput\n\nsklearn_processor = SKLearnProcessor(\n framework_version="0.20.0",\n role=role,\n instance_type="ml.m5.xlarge",\n instance_count=1,\n)\n\nsklearn_processor.run(\n code="preprocessing.py", # <- this gets uploaded as /opt/ml/processing/input/code/preprocessing.py\n inputs=[\n ProcessingInput(source=input_data, destination=\'/opt/ml/processing/input\'),\n # Send my_package as /opt/ml/processing/input/code/my_package/\n ProcessingInput(source=\'my_package/\', destination="/opt/ml/processing/input/code/my_package/")\n ],\n outputs=[\n ProcessingOutput(output_name="train_data", source="/opt/ml/processing/train"),\n ProcessingOutput(output_name="test_data", source="/opt/ml/processing/test"),\n ],\n arguments=["--train-test-split-ratio", "0.2"],\n)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
6691 次 |
| 最近记录: |