use*_*803 2 python kubeflow kubeflow-pipelines
我可以使用创建一个静态的 for 循环
with dsl.ParallelFor([1,2,3]) as item:
....
Run Code Online (Sandbox Code Playgroud)
如何使用 acontainer_op.output作为输入ParallelFor?
假设第一个容器输出一个 integer n,然后我想运行ParallelForn 次。
像这样的尝试不起作用:
container_op = ContainerOp(...)
with dsl.ParallelFor(container_op.output) as item:
....
Run Code Online (Sandbox Code Playgroud)
我正在尝试刺激并行 pythonrange(n)函数。
小智 5
对支持withItem(静态循环)和withParams(动态循环)的更改是在多个部分完成的,但它们现在都可用。参考公关。
确保您的 KPF 版本是0.1.31或更高版本。
可以循环遍历前一个的输出,container_op如下所示
echo_op = dsl.ContainerOp(
name='echo',
image='library/bash:4.4.23',
command=['sh', '-c'],
arguments=['echo "[1,2,3]"> /tmp/output.txt'],
file_outputs={'output': '/tmp/output.txt'})
with dsl.ParallelFor(echo_op.output) as item:
iterate_op = dsl.ContainerOp(
name='iterate',
image='library/bash:4.4.23',
command=['sh', '-c'],
arguments=[f"echo {item} > /tmp/output.txt"],
file_outputs={'output': '/tmp/output.txt'})
Run Code Online (Sandbox Code Playgroud)
确保您的输出 YAML 如下所示:
name: for-loop-for-loop-3c29048d-1
template: for-loop-for-loop-3c29048d-1
withParam: '{{tasks.echo.outputs.parameters.echo-output}}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1252 次 |
| 最近记录: |