python - kubeflow ParallelFor 使用之前的 containerop 输出
问题描述
我可以使用创建一个静态 for 循环
with dsl.ParallelFor([1,2,3]) as item:
....
如何使用 acontainer_op.output
作为输入ParallelFor
?
假设第一个容器输出一个整数n
,然后我想运行ParallelFor
n 次。
像这样的尝试不起作用:
container_op = ContainerOp(...)
with dsl.ParallelFor(container_op.output) as item:
....
我正在尝试刺激并行 pythonrange(n)
函数。
解决方案
对支持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'})
确保您的输出 YAML 看起来像这样:
name: for-loop-for-loop-3c29048d-1
template: for-loop-for-loop-3c29048d-1
withParam: '{{tasks.echo.outputs.parameters.echo-output}}'
推荐阅读
- python - RuntimeError:不支持的原语类型:PriorBoxClustered 名称:fc7_mbox_priorbox
- mapbox - Mapbox - 下载栅格图块以离线显示
- r - R - 过滤数据集中的因子计数
- windows - 是否可以在 Windows 10 git-bash 中使用 fzf(命令行模糊查找器)?
- python - 将字段添加到内存映射的 numpy 记录数组
- c# - 提取带有位置的文本数据
- postgresql - 使用 pg_dump + pg_restore 复制 cp,出现错误:
- php - 可以选择在 PHP 中获取预期类型的变量吗?
- networking - TCP 物理上如何发送和接收数据?
- r - 将代码数据保存到 CSV