kubeflow - Kubeflow 管道中的 ParallelFor
问题描述
我想使用自定义列表在 Kubeflow 管道中运行并行操作,并且我想将列表元素的值用于定义操作。我正在尝试这样的事情:
my_list = ['foo', 'bar']
with dsl.ParallelFor(my_list) as item:
op_first = dsl.ContainerOp(
name=f'{item} - First Op',
image=f'gcr.io/...',
arguments=[
...
]
)
...
但我收到这样的错误:
ValueError: Only letters, numbers, spaces, "_", and "-" are allowed in name.
Must begin with letter: {{pipelineparam:op=;name=loop-item-param-103a50f1}} - First Op
我也试过
my_dict = [{'name': 'foo'}, {'name': 'bar'}]
with dsl.ParallelFor(my_list) as item:
name = item.name
op_first = dsl.ContainerOp(
name=f'{name} - First Op',
image=f'gcr.io/...',
arguments=[
...
]
)
...
但我得到一个类似的错误。如何检索项目的“原始”名称?
解决方案
我知道这是一个老问题,但我刚刚遇到了同样的问题,所以希望这会对其他人有所帮助。
对于您尝试的第二个选项,将字典键“名称”替换为其他内容,如下所示。
my_dict = [{'job_name': 'foo'}, {'job_name': 'bar'}]
似乎 Kubeflow 内部使用了键“名称”,并且为其分配值会导致您的错误。
推荐阅读
- visual-studio - "}},"anonymousId":computername\\username 此时出乎意料
- javascript - 如何在 Vuejs 中传递 json 对象?
- python - 熊猫新手,如果列的值匹配,我想将 2 行合并为 1
- php - Google Calendar API - 创建事件以发送更新
- java - No Adapter Attached 使用 RecyclerView Adapter 跳过布局错误
- perl - centos 7 不支持 ipv6 perl Net::DNS Net::SIP?
- windows - 用于扫描命令输出中每一行关键字的批处理脚本
- statistics - 卡方检验“不正确”结果的解释
- ios - Scenekit Xcode 模板 (BoilerPlate) 代码在运行时崩溃,Xcode 13, 2021
- javascript - 如何使用 JavaScript 数组数据填充 SELECT 下拉列表?