Я пытаюсь написать приложение, используя 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=;}