如何在预处理脚本中运行具有多个数据输入的 sagemaker 管道?

问题描述 投票:0回答:1

我正在尝试在数据预处理脚本中运行具有多个数据输入的 sagemaker 管道。当我仅使用一个数据输入运行管道时,它会运行,但是当我引入需要在预处理步骤中合并的第二个数据输入时,我收到了两种不同类型的错误:

  1. 'FailureReason': 'ClientError: AlgorithmError: ,退出代码:1',
  2. 'FailureReason': 'ClientError: 无法调用 sagemaker:CreateProcessingJob。错误详细信息: null',

注意:我已经能够单独使用每个数据输入成功运行管道,因此我知道管道能够读取数据。我引入多个参数/数据输入的方式有些不起作用.

这就是我的参数:

`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],     
)
sdk pipeline amazon-sagemaker
1个回答
0
投票

在构建ProcessingStep的代码中,您指定了两个ProcessingInput,并且它们具有相同的目标路径(“/opt/ml/processing/input”)。查看 amazon-sagemaker-examples 存储库中的

ml-ops 示例笔记本
,它们在使用多个处理输入时使用不同的目标路径。请尝试指定不同的路径并检查问题是否解决。

© www.soinside.com 2019 - 2024. All rights reserved.