我正在尝试使用Kubeflow Pipelines编写应用程序。将参数传递到管道时(用@kfp.dsl.pipeline
装饰的主要python函数)遇到麻烦。参数应自动转换为带有名称,值等信息的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=;}