我正在尝试使用 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'
运行结果如下:
{{pipelineparam:op=;name=Name;value=Value;type=;}}
{{pipelineparam:op=;name=output-file;value=;type=;}
我应该在“值”字段中获得“/output.txt”,但填充的唯一字段是名称。这只发生在将参数传递给主管道函数时。当像这样直接传入 PipelineParam 时也会发生这种情况:
@kfp.dsl.pipeline(
name='Test Pipeline',
description='Test pipeline'
)
def test_pipeline(output_file=kfp.dsl.PipelineParam("Output File", value="/output.txt")):
print(output_file)
打印出来:{{pipelineparam:op=;name=output-file;value=;type=;}