【模型部署】onnx模型-LOOP 节点实例
1. LOOP 节点扩展说明
ONNX 中的 LOOP 节点用于表达循环控制流。其基本思想是将一个循环体(子图)封装成一个独立的计算图,在主图中通过 LOOP 节点调用。主要特点如下:
-
循环次数和条件
LOOP 节点有两个主要控制输入:- 最大迭代次数:限定循环最多执行的次数。
- 初始条件:通常为布尔值,初始为 True 用于启动循环;循环体每次输出一个新的条件,用于判断是否提前退出循环。
-
循环携带依赖
循环体内部除了接收当前的迭代计数和条件外,还可以传递一个或多个状态变量,这些状态变量在每次迭代中更新,类似于“循环携带依赖”。 -
扫描输出
除了更新状态外,循环体可以输出一个扫描变量,用来收集每次迭代的中间结果,这部分输出最终以序列的形式返回给主图。 -
子图设计
LOOP 节点的子图(body)必须定义如下输入:- 当前迭代计数(标量 int64) <