我正在尝试在数据预处理脚本中运行具有多个数据输入的 sagemaker 管道。当我仅使用一个数据输入运行管道时,它会运行,但是当我引入需要在预处理步骤中合并的第二个数据输入时,我收到了两种不同类型的错误:
注意:我已经能够单独使用每个数据输入成功运行管道,因此我知道管道能够读取数据。我引入多个参数/数据输入的方式有些不起作用.
这就是我的参数:
`from sagemaker.workflow.parameters import (
ParameterInteger,
ParameterString,)
Processing_instance_count =
ParameterInteger(name="ProcessingInstanceCount",default_value=1)
data_input1 = ParameterString(name="data1",default_value=data1,)
data_input2 = ParameterString(name="data2",default_value=data2,)`
我的处理步骤:
process_step = ProcessingStep(
name="...",
processor=sklearn_processor,
inputs=[
ProcessingInput(source=data1, destination="/opt/ml/processing/input"),
ProcessingInput(source=data2, destination="/opt/ml/processing/input"),],
outputs=[
ProcessingOutput(output_name="...", source="/opt/ml/processing/output"),], code=preprocess_script_uri,
)
然后是管道定义:
pipeline_name = f"..."
pipeline = Pipeline(
name=pipeline_name,
parameters=[
processing_instance_count,
data_input1,
data_input2, ],
steps=[process_step],
)
在构建ProcessingStep的代码中,您指定了两个ProcessingInput,并且它们具有相同的目标路径(“/opt/ml/processing/input”)。查看 amazon-sagemaker-examples
存储库中的
ml-ops 示例笔记本,它们在使用多个处理输入时使用不同的目标路径。请尝试指定不同的路径并检查问题是否解决。