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