PaddlePaddle inference 源码分析(五)-graph和pass


本节讲述图的解析以及pass图优化。

模型文件使用protobuf保存。它的嵌套关系如下:block->operator->var。

block中保存了很多operator,而operator则包含了自身的参数定义等。

一般情况下,大多数operator都放置在block0中,block1和2中一般放置那种算子内部的block,如while_op等。

op之间的连接关系依靠var名称来区别。一般情况下,所有var的名称都不相同,op1的输出var与op2的输入var对应。

进行pass处理时,会先调用理解类pass将整图读入,并且保存op间的依赖关系。

而后进行图优化。大部分图优化处理都是融合处理,即已知op1为calc1、op2为calc2,两者符合规则可以融合。

优化后仍旧得到PromDesc(proto)

读取后生成顺序执行的vector ,每次预测时顺序执行op。