使用循环
9.使用循环
NVIDIA®TensorRT™支持类似循环的结构,这对于循环网络很有用。 TensorRT循环支持扫描输入张量,张量的递归定义以及“扫描输出”和“最终值”输出。
9.1 定义循环
循环由循环边界层定义。
- ITripLimitLayer指定循环迭代多少次。
- IIteratorLayer使循环可以在张量上迭代。
- IRecurrenceLayer指定一个循环定义。
- ILoopOutputLayer指定循环的输出。
每个边界层都继承自类ILoopBoundaryLayer,该类具有用于获取其关联ILoop的方法getLoop()。 ILoop对象标识循环。具有相同ILoop的所有循环边界层都属于该循环。
图5描述了边界处的循环和数据流的结构。循环不变张量可以直接在循环内部使用,如FooLayer所示。
图5. TensorRT循环由循环边界层设置。数据流只能通过ILoopOutputLayer离开循环。唯一允许的后端是IRecurrenceLayer的第二个输入。