PaddlePaddle概述
PaddlePaddle简介
为什么要学PaddlePaddle
什么是PaddlePaddle
PaddlePaddle优点
PaddlePaddle缺点
学习资源
什么是PaddlePaddle
PaddlePaddle(Parallel Distributed Deep Learning,中文名飞桨)
是百度公司推出的开源、易学习、易使用的分布式深度学习平台 源于产业实践,在实际中有着优异表现 支持多种机器学习经典模型
为什么学习PaddlePaddle
开源、国产 能更好、更快解工程决实际问题
PaddlePaddle优点
易用性。语法简洁,API的设计干净清晰 丰富的模型库。借助于其丰富的模型库,可以非常容易的复现一些经典 方法
全中文说明文档。首家完整支持中文文档的深度学习平台 运行速度快。充分利用 GPU 集群的性能,为分布式环境的并行计算进行 加速
PaddlePaddle缺点 教材少 习难度大、曲线陡峭
学习资源
官网 地址:https://www.paddlepaddle.org.cn/ 内容:学习指南、文档、API手册 百度云智学院
地址:http://abcxueyuan.cloud.baidu.com/#/courseDetail?id=14958 内容:教学视频
AIStudio
地址:https://aistudio.baidu.com/aistudio/projectoverview/public/1
内容:项目案例
编译与执行过程
- 用户编写的python程序通过调用 Paddle 提供的算子,向Program 中添加变量 (Tensor)以及对变量的操作(Operators 或者 Layers)
- 原始Program在框架内部转换为中间描述语言: ProgramDesc
- Transpiler 接受一段 ProgramDesc ,输出一段变化后的 ProgramDesc ,作为后端 Executor 最终需要执行的 Program
- 执行 ProgramDesc 中定义的 Operator(可以类比为程序语言中的指令),在执行 过程中会为 Operator 创建所需的输入输出并进行管理
三个重要术语
Fluid:定义程序执行流程 Program:对用户来说一个完整的程序 Executor:执行器,执行程序
快速开始
import paddle.fluid as fluid
# 创建两个类型为int64,形状为1行1列的张量
x = fluid.layers.fill_constant(
shape=[1],
dtype='int64',
value=1
)
y = fluid.layers.fill_constant(
shape=[1],
dtype='int64',
value=1
)
z = x + y
# 创建Executor执行器
place = fluid.CPUPlace()
exe = fluid.Executor(place)
result = exe.run(
fluid.default_main_program(),
fetch_list=[z]
)
print(result)
张量
• 什么是张量 张量(Tensor): 多维数组或向量,同其它主流深度学习框架一样, PaddlePaddle使用张量来承载数据
张量(续)
• 张量示例 灰度图像为二维张量(矩阵),彩色图像为三维张量
LoDTensor
LoD(Level-of-Detail) Tensor是Paddle的高级特性,是对T