使用飞桨构建波士顿房价预测模型

使用飞桨构建波士顿房价预测模型(笔记)

  1. 动态图模式

飞桨支持两种深度学习建模编写方式,更方便调试的动态图模式和性能更好并便于部署的静态图模式。

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

dygraph:动态图的类库。

import paddle
import paddle.fluid as fluid
import paddle.fluid.dygraph as dygraph
  1. 飞桨API

飞桨AIP查询截图
可以在飞桨网站上(https://www.paddlepaddle.org.cn/)
文档>API Reference查询具体API的参数、返回、代码示例。

  1. 训练过程

batch的取值会影响模型训练效果。batch过大,会增大内存消耗和计算时间,且效果并不会明显提升;batch过小,每个batch的样本数据将没有统计意义。由于房价预测模型的训练数据集较小,我们将batch为设置10。

  1. 清除梯度

知乎《PyTorch中在反向传播前为什么要手动将梯度清零?》

CSDN《Pytorch 为什么每一轮batch需要设置optimizer.zero_grad

  1. 保存模型

理论而言,直接使用模型实例即可完成预测,而在实际应用中,训练模型和使用模型往往是不同的场景。模型训练通常使用大量的线下服务器(不对外向企业的客户/用户提供在线服务),而模型预测则通常使用线上提供预测服务的服务器,或者将已经完成的预测模型嵌入手机或其他终端设备中使用。

  1. 测试模型

主要可分成如下三个步骤:

1)配置模型预测的机器资源。
2)将训练好的模型参数加载到模型实例中。由两个语句完成,第一句是从文件中读取模型参数;第二句是将参数内容加载到模型。加载完毕后,需要将模型的状态调整为eval()(校验)。(训练状态的模型需要同时支持前向计算和反向传导梯度,模型的实现较为臃肿,而校验和预测状态的模型只需要支持前向计算,模型的实现更加简单,性能更好)
3)将待预测的样本特征输入到模型中,打印输出的预测结果。

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页