AI Studio 飞桨 零基础入门深度学习笔记3-使用飞桨重写房价预测模型

AI Studio 飞桨 零基础入门深度学习笔记3-使用飞桨重写房价预测模型

  • 飞桨深度学习平台设计之“道”
  • 使用飞桨构建波士顿房价预测模型
    • 数据处理
    • 模型设计
    • 训练配置
    • 训练过程
    • 保存并测试模型
      • 保存模型
      • 测试模型

飞桨深度学习平台设计之“道”

当读者习惯使用飞桨框架后会发现程序呈现出“八股文”的形态,即不同的程序员、使用不同模型、解决不同任务的时候,他们编写的建模程序是极其相似的。虽然这些设计在某些“极客”的眼里缺乏精彩,但从实用性的角度,我们更期望建模者聚焦需要解决的任务,而不是将精力投入在框架的学习上。因此使用飞桨编写模型是有标准的套路设计的,只要通过一个示例程序掌握使用飞桨的方法,编写不同任务的多种建模程序将变得十分容易。

这点与Python的设计思想一致:对于某个特定功能,并不是实现方式越灵活、越多样越好,最好只有一种符合“道”的最佳实现。此处“道”指的是如何更加匹配人的思维习惯。当程序员第一次看到Python的多种应用方式时,感觉程序天然就应该如此实现。但相信我,不是所有的编程语言都具备这样合“道”的设计,很多编程语言的设计思路是人需要去理解机器的运作原理,而不能以人类习惯的方式设计程序。同时,灵活意味着复杂,会增加程序员之间的沟通难度,也不适合现代工业化生产软件的趋势。

飞桨设计的初衷不仅要易于学习,还期望使用者能够体会到它的美感和哲学,与人类最自然的认知和使用习惯契合。

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

本书中的案例覆盖计算机视觉、自然语言处理和推荐系统等主流应用场景,所有案例的代码结构完全一致,如 图1 所示。

AI Studio 飞桨 零基础入门深度学习笔记3-使用飞桨重写房价预测模型

模型设计

模型定义的实质是定义线性回归的网络结构,飞桨建议通过创建Python类的方式完成模型网络的定义,即定义函数和函数。函数是框架指定实现前向计算逻辑的函数,程序在调用模型实例时会自动执行forward方法。在函数中使用的网络层需要在函数中声明。

实现过程分如下两步:

  1. 定义init函数:在类的初始化函数中声明每一层网络的实现函数。在房价预测模型中,只需要定义一层全连接层,模型结构和《使用Python和Numpy构建神经网络模型》章节模型保持一致。
  2. 定义forward函数:构建神经网络结构,实现前向计算过程,并返回预测结果,在本任务中返回的是房价预测结果。

训练配置

训练配置过程包含四步,如 图2 所示:

AI Studio 飞桨 零基础入门深度学习笔记3-使用飞桨重写房价预测模型

图3:内循环计算过程

  1. 数据准备:将一个批次的数据转变成np.array和内置格式。
  2. 前向计算:将一个批次的样本数据灌入网络中,计算输出结果。
  3. 计算损失函数:以前向计算结果和真实房价作为输入,通过损失函数square_error_cost计算出损失函数值(Loss)。飞桨所有的API接口都有完整的说明和使用案例,在后续的资深教程中我们会详细介绍API的查阅方法。
  4. 反向传播:执行梯度反向传播函数,即从后到前逐层计算每一层的梯度,并根据设置的优化算法更新参数。

AI Studio 飞桨 零基础入门深度学习笔记3-使用飞桨重写房价预测模型

来源:mejs

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年7月11日
下一篇 2020年7月11日

相关推荐