############### 动态图转静态图 ############### 动态图有诸多优点,包括易用的接口,Python风格的编程体验,友好的debug交互机制等。在动态图模式下,代码是按照我们编写的顺序依次执行。这种机制更符合Python程序员的习 惯,可以很方便地将大脑中的想法快速地转化为实际代码,也更容易调试。但在性能方面, Python执行开销较大,与C++有一定差距。因此在工业界的许多部署场景中(如大型推荐系统、移动端)都倾向于直接使用C++来提速。 相比动态图,静态图在部署方面更具有性能的优势。静态图程序在编译执行时,先搭建模型 的神经网络结构,然后再对神经网络执行计算操作。预先搭建好的神经网络可以脱离Python依赖,在C++端被重新解析执行,而且拥有整体网络结构也能进行一些网络结构的优化。 动态图代码更易编写和debug,但在部署性能上,静态图更具优势。因此我们新增了动态图转静态图的功能,支持用户依然使用动态图编写组网代码。PaddlePaddle会对用户代码进行 分析,自动转换为静态图网络结构,兼顾了动态图易用性和静态图部署性能两方面优势。 我们在以下链接介绍PaddlePaddle动态图转静态图的各个部分: - `基本用法 `_ : 介绍了动态图转静态图的基本使用方法 - `内部架构原理 `_ :介绍了动态图转静态图的架构原理 - `支持语法列表 `_ :介绍了动态图转静态图支持的语法以及罗列不支持的语法写法 - `InputSpec功能介绍 `_ :介绍了动态图转静态图指定输入InputSpec的功能和用法 - `报错信息处理 `_ :介绍了动态图转静态图的报错信息处理方法 - `调试方法 `_ :介绍了动态图转静态图支持的调试方法 .. toctree:: :hidden: basic_usage_cn.rst program_translator_cn.rst grammar_list_cn.rst input_spec_cn.rst error_handling_cn.md debugging_cn.md