飞桨 百度架构师手把手带你零基础实践深度学习21天 学习笔记——使用飞桨重写波士顿房价预测模型

使用飞桨书写模型的时候,流程与前面介绍的是一摸一样的。
下面开始总结一下如何使用飞桨写模型

加载飞桨库

主库:paddle/fluid
动态图类库:digraph(便于调试)

静态图模式(声明式编程范式,类比C++) 动态图模式 (命令式编程范式,类比Python)
先编译后执行的方式。用户需预先定义完整的网络结构,再对网络结构进行编译优化后,才能执行获得计算结果。 解析式的执行方式。用户无需预先定义完整的网络结构,每写一行网络代码,即可同时获得计算结果。

全连接层:Linear(可激活指定性函数)

数据处理

此部分包括数据导入、修改格式、分为训练测试集、数据归一化处理。
在飞桨中书写与前面完全一致。

模型设计

实质为定义线性回归的结构。
需要用到两种函数,init函数和forward函数。

init forward
在类的初始化函数中声明每一层网络的实现函数。 构建神经网络结构,实现前向计算过程,并返回预测结果。

注:我们这里不使用激活函数

训练配置

  1. 定义工作环境

  2. 定义模型(有训练和预测状态)

    模型实例有两种状态:训练状态.train()和预测状态.eval()。训练时要执行正向计算和反向传播梯度两个过程,而预测时只需要执行正向计算。为模型指定运行状态,有两点原因:
    (1)部分高级的算子(例如Drop out和Batch Normalization,在计算机视觉的章节会详细介绍)在两个状态执行的逻辑不同。
    (2)从性能和存储空间的考虑,预测状态时更节省内存,性能更好。

  3. 开启训练模式

  4. 读取数据

  5. 定义优化算法SDG,定义学习率0.01

  6. 开始训练
    双层循环+四个步骤
    (先将数据格式写为numpy.array格式)

  7. 保存模型
    先保存,加载,再进行测试。因为模型可以应用到不同的场景。

  8. 加载模型,进行预测
    (1)生产模型实例,配置资源。
    (2)加载模型参数,设置模型状态为“eval”(因为预测时,不需要反向传播梯度)
    (3)调用模型,打印预测值与真实值

总结:编写成本大降低

感悟:飞桨提供了一个深度学习框架,可以达到事半功倍的效果。学习这一章之后其实我能够发现代码编写过程大大的减少了,但是飞桨的一些函数的定义与调用还没有特别的清楚,在init函数和forward函数的定义上还是不够理解,需要在接下来的学习过程中,去更好的理解和了解。

下面书写一下使用飞桨重写波士顿房价预测模型
直接使用python的案例在这里:完整步骤

#加载飞桨、Numpy和相关类库
import paddle
import paddle.fluid as fluid
import paddle.fluid.dygraph as dygraph
from paddle.fluid.dygraph import Linear
import numpy as np
import os
import random

#数据处理,此部分与前面的完全一致,飞桨的优化主要在模型设计和训练配置上
def load_data():
    # 从文件导入数据
    datafile = './work/housing.data'
    data = np.fromfile(datafile, sep=' ')

    # 每条数据包括14项,其中前面13项是影响因素,第14项是相应的房屋价格中位数
    feature_names = [ 'CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', \
                      'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV' ]
    feature_num = len(feature_names)

    # 将原始数据进行Reshape,变成[N, 14]这样的形状
    data = data.reshape([data.shape[0] // feature_num
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值