|
|
51CTO旗下网站
|
|
移动端

2.4 构建一个多层神经网络

《Python深度学习实战:75个有关神经网络建模、强化学习与迁移学习的解决方案》第2章前馈神经网络,本章的重点是为FNN 和其他网络拓扑的常见实现问题提供解决方案。本章讨论的技术也适用于后续内容。本节为大家介绍构建一个多层神经网络。

作者:程国建/周冠武 译来源:机械工业出版社|2018-08-30 18:40

2.4 构建一个多层神经网络

在前面的方案中创建的实际上是FNN 最简单的形式:信息只在一个方向流动的神经网络。对于下一个方案,将隐层的数量从一层扩展到多层。增加额外的层可以增加网络的性能,学习复杂的非线性模式。

如图2.7 所示,增加附加层后,神经元连接(权重,也称为可训练参数)的数量会呈指数增长。在下一个方案中,将创建一个具有两个隐层的网络来预测葡萄酒的品质。这是一个回归任务,所以对输出层使用线性激活。对于隐层,使用ReLU 激活函数。这个方案使用Keras 框架来实现前馈网络。

如何去做…

1)从导入函数库和数据集开始:

2)加载数据集:

3)拆分数据,进行网络训练和测试:

4)输出显示平均品质和第一行训练集:

在图2.8 中,可以看到一个网络训练的结果输出实例。

5)接下来的一个重要步骤是对输入数据进行标准化:

6)确定基准预测:

7)现在,通过定义网络架构来构建神经网络模型:

8)定义回调函数,以便使用早停技术并保存最佳模型:

9)运行批大小为64 的模型5000 个周期,验证集按20%分割:

10)加载最佳权重后,可以在测试集上输出显示性能:

对于小数据集,建议重新训练全部训练集数据(无验证集),并上调与附加数据成比例的周期数。另一种选择是在进行预测时使用交叉验证和平均结果。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java程序员面试宝典

本书是程序员面试宝典系列中的一册,也是上一本《程序员面试宝典》的姊妹书。本书对程序设计面试中Java常见的题型和常用解答技巧进行了介绍...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
博聚网