首个完整支持中文文档的深度学习框架——百度PaddlePaddle API文档简介


导语


PaddlePaddle 作为国内首个深度学习开源平台,在 Fluid  v1.0版本提供了稳定且向后兼容的 API及英文说明文档。经过不断的优化与迭代,如今已推出了最新的版本Fluid v1.2。1.2版本中除了在基础框架、预测引擎、模型建设、分布式训练各个方向完成了多项更新,还增加API中文文档,使PaddlePaddle API有了完备的中英双语使用指南。

(http://paddlepaddle.org/documentation/docs/zh/1.2/release_note.html )


如果说Fluid v1.0版本标志着PaddlePaddle走向了成熟,如今的Fluid则是在成熟的基础上不断突破自己,在前进的道路上保持设计初心,努力为开发者打造真正易学易用、简洁优雅、快速高效的深度学习框架。


了解API的用法是学习一款深度学习框架的关键,本篇文章梳理了目前Fluid API的主要类别与使用场景,并提供了如何从官方文档中挖掘更多学习资料的小技巧,相信可以帮助您更好地使用Fluid。



Fluid API


Fluid API的设计既保持了框架的灵活性,方便您实现功能的任意组合;又提供了常用功能的封装模块,满足您一键调用的需求。无论您对深度学习的掌握程度如何,均可在Fluid中找到适合自己的模式。


Fluid涵盖了搭建深度学习网络所需的大量基本模块,您可以通过阅读API说明文档去深入了解它们。

(http://www.paddlepaddle.org/documentation/docs/zh/1.2/api_cn/index_cn.html )


总的来说,Fluid API被分为以下几类,它们分别负责不同的功能:


Fluid

包含定义框架的基本单元

Fluid.average

提供计算加权平均值的方法

Fluid.backward

提供根据网络的前向部分生成反向部分的方法

Fluid.clip

提供多种张量剪切的方法

Fluid.data_feeder

提供将训练数据喂入执行器中进行训练的方法

Fluid.executor

提供接受定义的网络并执行训练的方法

Fluid.initializer

提供了常用的初始化方法

Fluid.io

提供了加载/存储网络和参数的方法

Fluid.layers

包含了配置网络所需的丰富API

Fluid.metrics

提供多种网络评价指标

Fluid.nets

提供了搭建复杂网络时所需的基本模块

Fluid.optimizer

提供多种优化方法

Fluid.profiler

提供了网络分析器接口用于debug程序

Fluid.regularizer

提供常用的正则化方法

Fluid.transpiler

提供分布式计算时所需的网络转义方法


其中 Fluid.layers是最常用也最多样的,它涵盖了模型配置的各个阶段:


control_flow : Fluid中的“控制流”概念可以类比与程序语言,用于控制深度学习模型在训练或者预测过程中的执行逻辑。control_flow中包含了多种控制流API供用户选择。

 io : 定义了网络中数据输入输出的方法。

nn : 定义了神经网络的各种层,fc层、卷积层、池化层,以及网络搭建中所需其他单元如**函数、损失函数等等。

ops : 提供了丰富的数学操作符,同时支持一元和二元操作。

tensor : 提供了针对Tensor和LoDTensor的相关操作。

learning_rate_schedule : 提供诸如指数衰减、分段衰减、多项式衰减等多种学习率调节器。

detection : 提供图像检测中特有的相关操作。

metric_op : 提供常见的训练效果评价指标。




API 文档


Fluid 不仅在API的设计上追求极致,在配套API文档中也下足功夫。在最新的v1.2版本中,增加了中文版API文档,成为首家官方完整提供中文文档的深度学习框架。


下面几点小技巧将帮助您充分利用官方文档,快速掌握API使用秘籍

阅读API使用指南

(http://www.paddlepaddle.org/documentation/docs/zh/1.2/api_cn/api_guides/index.html )


为方便用户快速定位所需API,减少用户查找API的时间。官方提供了中文版 API使用指南(也称API Guide),介绍各类API将应用于何种场景,以及如何选择需要的API。


API使用指南位于官网说明文档的API板块,分功能介绍了Fluid的API体系和用法,帮助您快速了解Fluid API的全貌,主要包括以下几个模块:


神经网络层

将fluid.layers中的API按功能更加细致的分为:卷积、池化、图像检测、序列、数学操作、**函数、损失函数、数据输入输出、控制流、稀疏更新、学习率调整器和张量这几大类,并分别介绍如何在实际任务中使用它们

执行引擎

介绍了Fluid的单线程任务中如何顺序执行定义的Operator

优化器

简要介绍了Fluid中不同优化器的工作原理与相关论文

评价指标

分别介绍了分类任务、序列标注任务和生成任务的评价指标

模型保存与加载

介绍了如何使用Fluid API对模型、变量和参数进行保存和加载

预测引擎

介绍了如何对预测模型进行保存与加载

分布式训练

分别从分布式同步训练、分布式异步训练、分布式CPU训练最佳实践、大规模稀疏特征模型训练和分布式训练reader准备几方面,为您介绍在分布式场景下您需要掌握的API

显存优化

指导您如何通过调用   memory_optimize接口进行显存优化

复杂网络

介绍了如何利用细粒度的函数根据一定的拼接逻辑得到Fluid中封装好的复杂模块

数据并行执行引擎

介绍了如何以数据并行的方式在多节点上分别执行Program


当您希望实现某一功能时,强烈推荐您阅读API使用指南,它不仅能够帮助您快速找到所需文档,也可以方便您高效了解各类API的用法。


查阅API说明文档

满足大量国内开发者的需求,从Fluid v1.2起,官网增加了配套的中文版API说明文档,它与英文版文档对齐,并将被持续维护。这标志着PaddlePaddle成为首家官方完整支持中文文档的深度学习框架。


为了让中文文档尽快与大家见面,我们在翻译的过程中可能存在一些不够完善的地方,希望大家可以在阅读的同时帮助我们共同校验文档的翻译质量。


非常欢迎您为PaddlePaddle贡献文档,我们的文档在PaddlePaddle/FluidDoc (https://github.com/PaddlePaddle/FluidDoc) 中统一管理,如您对PaddlePaddle有任何问题,也非常欢迎您在此Repo提交Issue,您的反馈是我们进步的动力!


首个完整支持中文文档的深度学习框架——百度PaddlePaddle API文档简介