逻辑算子¶
智能任务流提供以下几种逻辑算子:
- Condition(条件算子) 
- ParallelFor(循环算子) 
- Recursion(递归算子) 
Condition 算子¶
Condition 算子用于实现逻辑判断,根据设定的条件表达式执行不同的任务,目前支持大于、小于、大于等于、小于等于、等于、不等于等单运算符。
表达式格式和说明¶
Condition 算子的表达式格式为:
左侧操作数类型 | 左侧操作数 | 操作符 | 右侧操作数类型 | 右侧操作数
| 表达式元素 | 说明 | 
|---|---|
| 左侧操作数类型 | 可选声明和引用两种类型。 | 
| 左侧操作数 | 当左侧操作数类型为声明时,左侧操作数为输入的固定值,如字符串  | 
| 操作符 | 表达式的运算符,支持大于、小于、大于等于、小于等于、等于、不等于等单运算符。 | 
| 右侧操作数类型 | 可选声明和引用两种类型。 | 
| 右侧操作数 | 当右侧操作数类型为声明时,右侧操作数为输入的固定值,如字符串  | 
使用须知¶
- 尽量避免使用无效的条件表达式,如 - 1==1。
- 暂不支持复合条件表达式,如与、或关系的多条件表达式组合。 
配置和使用示例¶
有关 Condition 算子的详细配置和使用示例,参见 编排任务流 中的示例。
ParallelFor 算子¶
ParallelFor 算子实现循环处理逻辑,仅支持引用类型。可根据引用的全局 list 类型参数、或前一个算子输出的 list 类型参数对 list 里的元素进行循环处理。
输入参数和说明¶
ParallelFor 算子的输入参数格式为:
List来源类型 | 引用的List | Item名称
| 参数 | 说明 | 
|---|---|
| List来源类型 | 当前仅支持引用类型。引用表示输入参数中 List常量或引用 栏会使用一个List类型的引用,引用可以来自任务流全局参数或前一个算子的输出参数。 | 
| 引用的List | 引用可以来自任务流全局参数或前一个算子的输出参数。 | 
| Item名称 | 用于指向List中的每个元素,缺省值为item,也可以修改为其它名称。 | 
使用须知¶
- ParallelFor 算子里使用的item名称须与 ParallelFor 逻辑算子上定义的名称保持一致。 
- 引用的list必须是List类型,支持如: - ["a","b","c"]或- [1,2,3]这种List类型。
配置和使用示例¶
以下示例介绍 ParallelFor 算子的配置和使用说明:
- 选择 - 下载代码将代码文件保存到本地。
- 参考 上传模型代码到内部存储将下载好的代码文件上传到内部存储。 
- 将 ParallelFor 算子拖拽到编辑画布中。 
- 选择编辑画布空白处,在任务流参数配置中,添加参数 - loop_args,并为参数配置一个全局变量- [{"A_a":1,"B_b":2},{"A_a":10,"B_b":20}]。  
- 选中 ParallelFor 算子,在其参数配置的 输入参数 项中,引用参数 - loop_args。  
- 双击 ParallelFor 算子,打开其子画布,拖拽一个 PythonEx算子到编辑画布中: - 将 - workspace更改为上传代码文件的目录
- 选择上传的代码文件 print_result.py 作为 - entrypoint
- 引用 - item.A_a作为- result_number
   
- 保存任务流后,选择 运行。运行成功后,可查看任务流的运行情况。   
Recursion 算子¶
Recursion 算子实现编程语言中类似 do ... while 的功能,Recursion 算子中定义的条件表达式即为循环退出的条件。
表达式格式和说明¶
Recursion 算子的表达式格式为:
左侧操作数类型 | 左侧操作数 | 操作符 | 右侧操作数类型 | 右侧操作数
| 表达式元素 | 说明 | 
|---|---|
| 左侧操作数类型 | 可选声明和引用两种类型。 | 
| 左侧操作数 | 当左侧操作数类型为声明时,左侧操作数为输入的固定值,如字符串  | 
| 操作符 | 表达式的运算符,支持大于、小于、大于等于、小于等于、等于、不等于等单运算符。 | 
| 右侧操作数类型 | 可选声明和引用两种类型。 | 
| 右侧操作数 | 当右侧操作数类型为声明时,右侧操作数为输入的固定值,如字符串  | 
使用须知¶
- 避免死循环逻辑,如:使用无效的条件表达式,如 - 1==1会使任务流运行时无法退出循环。
- 当操作数类型选引用时,仅能使用 Recursion 算子子画布里算子的输出参数。一般 Recursion 算子的使用方式为:左侧操作数引用子画布算子的输出参数,右侧操作数使用声明类型的常量。 
- 暂不支持复合条件表达式,如与、或关系的多条件表达式组合。 
配置和使用示例¶
本章节以样例任务流 wind-power-forecast 中预测分支的触发条件为例(如果生成的数字大于 5 则继续循环,直到生产小于 5 的数字退出),介绍 Recursion 算子的配置和使用说明:
- 在样例任务流中找到 wind-power-forecast,选择 任务流查看。 
- 在画布中双击 Condition for Training 算子,在子画布中可看到一个 Recursion 算子。 
- 双击 Recursion 算子打开其子画布,其中有一个 PythonEx 算子用于生成一个1-10的随机数。   
- 返回 Recursion 算子,可以看到其引用子画布中 PythonEx 算子的 - result_number值作为 Recursion 算子的表达式:- Generate a number between 1-10.result_number < 5。  
- 保存任务流后,选择 运行。运行成功后,可查看任务流的运行情况。 