#python #docker #yaml #kubeflow #kubeflow-pipelines
Вопрос:
Я пытаюсь использовать параметр запуска kubeflow в качестве аргумента для моего шага конвейера.
Однако каждый раз, когда я компилирую файл yaml, он изменяется с целого числа на локальный путь.
@dsl.pipeline(name='First Pipeline', description='generates a random set of numbers then performs operations on them returning a json object')
def first_pipeline(generate_n_arg: int = 10):
# Loads the yaml manifest for each component
generate_numbers = kfp.components.load_component_from_file('generate_numbers/generate_numbers.yaml')
multiply_numbers = kfp.components.load_component_from_file('multiply/multiply.yaml')
sum_numbers = kfp.components.load_component_from_file('sum/sum.yaml')
sort_numbers = kfp.components.load_component_from_file('sort/sort.yaml')
output_to_json = kfp.components.load_component_from_file('output_to_json/output_to_json.yaml')
# Run generate_data task
print(generate_n_arg)
generate_numbers_task = generate_numbers(generate_n=generate_n_arg)
мой файл yaml четко указывает, что он должен быть целым числом
description: generate random toy data
inputs:
- {name: generate_n, type: Integer, description: 'an integer for how many numbers to generate'}
outputs:
- {name: out_path, type: LocalPath, description: 'Path where data will be stored.'}
implementation:
container:
image: path/to/image
command: [
python, generate.py,
--generate_n,
{inputPath: generate_n},
--out_path,
{outputPath: out_path},
]
однако каждый раз, когда я компилирую конвейер, он изменяется на путь
command: [python, generate.py, --generate_n, /tmp/inputs/generate_n/data, --out_path,
/tmp/outputs/out_path/data]
даже несмотря на то, что конвейер все еще признает, что я несколько раз вводил целое число в yaml
inputs:
artifacts:
- {name: generate_n_arg, path: /tmp/inputs/generate_n/data}
arguments:
parameters:
- {name: generate_n_arg, value: '10'}
artifacts:
- name: generate_n_arg
raw: {data: '{{workflow.parameters.generate_n_arg}}'}
Кто-нибудь знает, как я могу заставить его выдавать мне входное значение вместо пути к локальному пути/артефакту?
Ответ №1:
Я нашел проблему. У меня было неправильное значение в файле yaml. Я использовал неправильную команду ввода, чтобы указать значение.
меняющийся
--generate_n,
{inputPath: generate_n},
Для
--generate_n,
{inputValue: generate_n},