【TensorFlow】TensorFlow从浅入深系列之七 -- 教你使用验证数据集判断模型效果
本文是《TensorFlow从浅入深》系列之第7篇
TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法)
TensorFlow从浅入深系列之二 -- 教你通过思维导图深度理解深层神经网络
TensorFlow从浅入深系列之三 -- 教你如何对MNIST手写识别
TensorFlow从浅入深系列之四 -- 教你深入理解过拟合问题(正则化)
TensorFlow从浅入深系列之五 -- 教你详解滑动平均模型
TensorFlow从浅入深系列之六 -- 教你深入理解经典损失函数(交叉熵、均方误差)
在(TensorFlow从浅入深系列之三 -- 教你如何对MNIST手写识别)使用神经网络解决MNIST问题的程序中,开始的位置设置了初始学习率、学习率衰减率、隐藏层节点数、迭代轮数等7中不同的参数。一般情况下,配置神经网络的这些参数都是需要通过实验来调整的。
因为神经网络是对未知数据提供判断,所以我们不能直接通过模型在测试数据上的效果来选择参数,这样容易导致神经网络模型过度拟合测试数据,从而失去对未知数据的预判能力。
所以,为了顾及模型在未知数据上的效果,需要保证测试数据在训练过程中是不可见的。
因此,为了评测神经网络模型在不同参数下的效果,一般会从训练数据中抽取一部分作为验证数据。使用验证数据评判不同参数取值下的表现。有时也可以采用交叉验证的方式来验证模型效果,但是采用交叉验证会花费大量时间。所以在海里数据的情况下,一般更多地采用验证数据集的形式来评判模型的效果。
在(TensorFlow从浅入深系列之三 -- 教你如何对MNIST手写识别)加入以下代码,得到每1000轮迭代后,使用滑动平均的模型在验证数据和测试数据上的正确率。
# 计算滑动平均模型在测试数据和验证数据上的正确率
validate_acc = sess.run(accuracy, feed_dict=validate_feed)
test_acc = sess.run(accuracy, feed_dict=test_feed)# 输出正确率信息。
print('After %d training step(s), validation accuracy using average model is %g, ' 'test accuracy using average model is %g' % (i, validate_acc, test_acc))
图5-2给出了通过上面代码得到的每1000轮滑动平均模型在不同数据集上的正确率曲线。其中灰色曲线表示随着迭代轮数的增加,模型在验证数据上的正确率;黑色的曲线表示在测试数据上的正确率。从图中可以看出,虽然这两条曲线不会完全重合,但是这两条曲线的趋势基本一样,而且他们的相关系数大于0.999。说明,在MNIST问题上,完全可以通过模型在验证数据上的表现来判断一个模型的优劣。
以上结论是针对MNIST数据集的,对于其他问题,需要具体问题具体分析。一般来说,验证数据分布越接近测试数据分布,模型在验证数据上的表现可以体现模型在测试数据上的表现。神经网络在验证数据上的效果来选取模型的参数是一个可行的方案。
【TensorFlow】TensorFlow从浅入深系列之七 -- 教你使用验证数据集判断模型效果相关推荐
- 【TensorFlow】TensorFlow从浅入深系列之五 -- 教你详解滑动平均模型
本文是<TensorFlow从浅入深>系列之第5篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...
- 【TensorFlow】TensorFlow从浅入深系列之八 -- 教你学会变量管理
本文是<TensorFlow从浅入深>系列之第8篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...
- 【TensorFlow】TensorFlow从浅入深系列之六 -- 教你深入理解经典损失函数(交叉熵、均方误差)
本文是<TensorFlow从浅入深>系列之第6篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...
- 【TensorFlow】TensorFlow从浅入深系列之四 -- 教你深入理解过拟合问题(正则化)
本文是<TensorFlow从浅入深>系列之第4篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...
- 【TensorFlow】TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法)
本文是<TensorFlow从浅入深>系列之第1篇 [TensorFlow]TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) 在训练神经网络时,需要设置学习率( ...
- 【TensorFlow】TensorFlow从浅入深系列之三 -- 教你如何对MNIST手写识别
本文是<TensorFlow从浅入深>系列之第3篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...
- 【TensorFlow】TensorFlow从浅入深系列之十三 -- 教你深入理解模型持久化(模型保存、模型加载)
本文是<TensorFlow从浅入深>系列之第13篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...
- 【TensorFlow】TensorFlow从浅入深系列之十二 -- 教你深入理解卷积神经网络中的池化层
本文是<TensorFlow从浅入深>系列之第12篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...
- 【TensorFlow】TensorFlow从浅入深系列之十一 -- 教你深入理解卷积神经网络中的卷积层
本文是<TensorFlow从浅入深>系列之第11篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...
最新文章
- 先进一站式IP及定制
- linux qt5.7下打地鼠源程序,基于QT的打地鼠游戏
- 独家 | 手把手教你用R语言做回归后的残差分析(附代码)
- 机器学习笔试题精选(七)
- 总结从linux - windows 上(GCC与MSVC 2015) 移植C或者C++代码时候遇到的编译和链接问题
- 前端传递多个数组以及其他参数,springboot后台如何接收
- Awesomplete 屌爆了
- 【原创】Erlang 之 match 和 compare equal
- 如何看待0.5元可买到身份匹配的人脸数据?
- angularJs中datatable实现
- 在SharePoint 2010中创建联系人Web数据库网站
- 【知识兔】Excel多级联动关联下拉菜单的制作,一看就会!
- 8类网线利弊_7类网线和8类网线到底有何不同?
- 7大Python IDE工具推荐
- (11) IFC中物理文件解析 (Industry Foundation Class)
- 计算机桌面蓝字,教你电脑桌面图标有蓝色阴影怎么去掉
- 不要在循环中访问数据库,这样会严重影响数据库性能
- 小米5s 小米6 MIUI 系统 删除温控 破解限制
- react使用二级(多级)路由(rout)实现局部跳转
- 计算机策略组 网络,组策略怎么用 玩转电脑组策略技巧 (全文)
热门文章
- java导入数据 neo4j_java-neo4j-使用neo4j剩余图数据库进行批量插...
- 串口 多个activity 安卓_一个Activity实时向另一个Activity发送消息
- u盘弹出工具_mac怎么格式化u盘?
- 比特币一种点对点的电子现金系统是哪一年诞生的_阎王解读比特币白皮书:点对点电子现金系统...
- windows2008强制卸载辅域和元数据
- iphone储存空间系统怎么清理_iPhone储存空间里其他占了几十GB,怎样彻底删除它?...
- python中回归拟合图_seaborn库:线性回归拟合图
- Hive之函数与自定义函数
- 工作中的沟通及信息传递
- ERP通用存储过程封装(三)