如何修复 PipelineParam 丢弃 Kubeflow Pipeline 中除名称之外的所有信息

Nic*_*one 5 kubernetes kubeflow

我正在尝试使用 Kubeflow Pipelines 编写一个应用程序。我在将参数传递到管道时遇到了麻烦(用 装饰的主要 python 函数@kfp.dsl.pipeline)。参数应自动​​转换为包含名称、值等信息的 PipelineParam。然而,似乎除了名字之外的一切都被抛弃了。我在 Ubuntu 服务器上。

我尝试卸载/重新安装和更新 Kubeflow,尝试安装几个最新版本的 kfp(0.1.23、0.1.22、0.1.20、0.1.18),以及在本地计算机上安装。

    def print_pipeline_param():
        return(kfp.dsl.PipelineParam("Name", value="Value"))

    @kfp.dsl.pipeline(
        name='Test Pipeline',
        description='Test pipeline'
    )
    def test_pipeline(output_file='/output.txt'):
        print(print_pipeline_param())
        print(output_file)

    if __name__ == '__main__':
        import kfp.compiler as compiler
        compiler.Compiler().compile(test_pipeline, __file__ + '.tar.gz'
Run Code Online (Sandbox Code Playgroud)

运行的结果是:

{{pipelineparam:op=;name=Name;value=Value;type=;}}
{{pipelineparam:op=;name=output-file;value=;type=;}
Run Code Online (Sandbox Code Playgroud)

我应该在“值”字段中获取“/output.txt”,但唯一填充的字段是名称。仅当将参数传递给主管道函数时才会发生这种情况。当直接传入 PipelineParam 时也会发生这种情况,如下所示:

{{pipelineparam:op=;name=Name;value=Value;type=;}}
{{pipelineparam:op=;name=output-file;value=;type=;}
Run Code Online (Sandbox Code Playgroud)

打印出:{{pipelineparam:op=;name=output-file;value=;type=;}