PaddlePaddle踩坑博客系列,纯属自己的踩坑学习记录! 上一篇博客说了的,俺是小白,我也是跟着官网https://www.paddlepaddle.org.cn/以及夜雨飘零大大学习的,踩坑系列的代码可能部分或者全部来源于此。 另外,夜雨飘零大大有一系列的PaddlePaddle学习教程,个人强推。
我们都知道,PaddlePaddle是一个深度学习的框架,用于训练各种机器学习的模型。而Fluid版本是PaddlePaddle最近推出的训练模型的版本。首先我们要知道一个事情:
一个典型的模型通常包含4个部分,分别是:输入数据定义,搭建网络(模型前向计算逻辑),定义损失函数,以及选择优化算法。下面以夜雨飘零的用paddlepaddle 计算1+1 为例,说明使用Fluid版本训练一个模型基本步骤。
import paddle.fluid as fluid import numpy as np ################输入数据定义######################## # 定义两个张量 a = fluid.layers.create_tensor(dtype='int64', name='a') b = fluid.layers.create_tensor(dtype='int64', name='b') # 定义两个要计算的变量 a1 = np.array([3, 2]).astype('int64') b1 = np.array([1, 1]).astype('int64') ################搭建网络(模型前向计算逻辑)############# # 将两个张量求和 y = fluid.layers.sum(x=[a, b]) ################开始训练###################### # 创建一个使用CPU的执行器 place = fluid.CPUPlace() exe = fluid.executor.Executor(place) # 进行参数初始化 exe.run(fluid.default_startup_program()) # 进行运算,并把y的结果输出 out_a, out_b, result = exe.run(program=fluid.default_main_program(), feed={'a': a1, 'b': b1}, fetch_list=[a, b, y]) print(out_a, " + ", out_b," = ", result)看上面代码由于是1+1(两个张量相加)逻辑较简单,所以并没有定义损失函数,以及选择优化算法这两个步骤但是这两个步骤在普通的模型中是必不可少的。另外我们还要关注的是Fluid版本的训练过程
可以看到它的基本步骤:
创建一个创建一个执行器,这里是CPU的,也可以是GPU的 place = fluid.CPUPlace() exe = fluid.executor.Executor(place) # GPU的执行器 # place = fluid.CUDAPlace(0) 进行参数初始化 exe.run(fluid.default_startup_program()) 最后开始训练 exe.run(program=fluid.default_main_program(), feed={'a': a1, 'b': b1}, fetch_list=[a, b, y])