深度学习中训练集,验证集,测试集的学习心得

news/2024/7/7 11:54:33 标签: 机器学习, 深度学习, 神经网络

这段时间在做一个实验,但是由于数据集较小,所以我就只分了训练集和验证集(相当于把测试集当成验证集用了),由于没有真正意义上的测试集,所以做完实验之后开始怀疑自己,这样做真的对吗?没有真正意义上的测试集我这样做出来的实验具有说服力吗?

后来去学习了一下验证集和测试集的区别,总的学习之后的结果就是验证集是用于训练过程中的调参,通过验证误差和验证精度等去调整模型的超参数,而测试集是用来评估模型,计算数据的泛化误差(越接近真实环境标签,泛化误差越小,相应的模型越好)

验证集的功能包括:

❑据验证集的性能表现来调整学习率、权值衰减系数、训练次数等。

❑ 根据验证集的性能表现来重新调整网络拓扑结构。

❑ 根据验证集的性能表现判断是否过拟合和欠拟合。

通过查看验证集手动或者自动调整超参数,让模型的验证集损失越来越小,从而不断的接近真实值,所以这样的话验证集是不能代替测试集的功能的。验证集可以多测使用,用来反馈模型的状况,而测试集只能用一次。

模型的评估一般使用:


  loss,accuracy = model.evaluate(X_test,Y_test)

or

  loss,accuracy = model.evaluate(db_test)

但是我又一个疑惑始终不解,我在训练过程中并没有去改变超参数,相当于让模型从头开始训练,而不是改变超参数之后继续训练模型,那这样的的验证集岂不是相当于测试集去评估模型的好坏了吗?(现在还是不解,求知道的大佬告知)

相关的学习可以参考:

https://zhuanlan.zhihu.com/p/48976706

《TensorFlow深度学习》书

 

 


http://www.niftyadmin.cn/n/1737967.html

相关文章

[转]Javascript的变量与delete操作符

Javascript的变量 实际上Javascript中,变量 对象属性,这是因为 Javascript 在执行脚本之前会创建一个Global对象,所有的全局变量都是这个Global对象的属性,执行函数时也会创建一个Activation对象,所有的局部变量都是这…

使用 GNU profiler 来提高代码运行速度

原文链接:http://www.ibm.com/developerworks/cn/linux/l-gnuprof.html 使用 GNU profiler 来提高代码运行速度寻找应用程序中占用时间最长的部分 Martyn Honeyford (martynhuk.ibm.com), 软件工程师, IBM UK Labs 2006 年 5 月 08 日 改进应用程序的性能是一项非常耗时…

tensorflow2.0在call()方法中使用tf.reshape()方法报错

记录一下自己在tensorflow2.x的call()方法中,打算改变张量的形状,所以使用了: x tf.reshape(x,(batch_size,-1)) 这样的代码,发生报错。 原因是在构建动态图的时候tensorflow2.0内部还没有创建具体的变…

What is ESI?

The ESI(Edge Side Includes) language is conceptually similar in many ways to the Server Side Includes (SSI) function found in many web servers. It is an in-markup scripting language that is interpreted before the page is served to the client.

tf.saved_model.load()出错

有时我们保存tensorflow2.x模型时,采用了tensorflow的统一模型保存格式, tf.saved_model.save(model, "保存的目标文件夹名称") 当我们通过 model tf.saved_model.load("保存的目标文件夹名称") 加载该模型时,调用出…

HTML的color

The attribute value type "color" (%Color;) refers to color definitions as specified in [SRGB]. (颜色的定义) A color value may either be a hexadecimal number (prefixed by a hash mark-#) or one of the following sixteen col…

AI算法岗面试问题记录1

记录一下面试算法岗过程中问到的问题,部分想不起了。 1.交叉熵是怎么回事?公式是什么? 在机器学习中,我们需要评估label和predicts之间的差距,使用KL散度刚刚好,即 由于KL散度中的前一部分−H(y)不变&…

Python类专有方法

Python除了自定义私有变量和方法外,还可以定义专有方法。专有方法是在特殊情况下或使用特殊语法时由python调用的,而不是像普通方法一样在代码中直接调用。看到形如__XXX__的变量或函数名时就需要注意下,这在python中是有特殊用途的 __init_…