神经网络训练解决loss、validation loss(损失函数)波动或不收敛问题
神经网络训练解决loss、validation loss(损失函数)波动或不收敛问题
1.没有对数据进行预处理。数据分类标注是否准确?数据是否正确对应标签或者是否有错误数据?
2.将数据进行归一化。将像素值从0~255映射到(0,1)或者(-1,1)直接。
3.调整网络模型结构。是否网络结构设计不合理,卷积层都得大小和通道数是否合理?层数是否合理?全连接层神经元个数是否合理?全连接层是否合理(隐藏层一般1~2层,全连接层为2到4层较为合适)
4.Batch size 过大。Batch size 设置的过大会降低网络的准确度,因为它降低了梯度下降的随机性。另外,batch size 越大那么要达到相同的精确度通常需要训练更少的的epoch,训练时间会更低,但缺点是模型的泛化能力降低,训练曲线波动可能会很大。我们可以尝试一些较小的batch size 如 16 ,8 甚至是1(常用为16、32)。使用较小的batch size 那么一个epoch就可以进行更多次的权值更新。这里有两个好处,第一,可以跳出局部最小点。其二可以表现出更好的泛化性能。
5.增加数据集的尺寸。数据集大小越大,训练损失越小,曲线越平滑。(但数据集并非越多越好,数据集的大小也与设计的网络架构有关,过多的数据集或许不会提高准确率,但会增加训练时间)
6.池化层与padding层如果不使用可能会增加网络模型的训练准确度,并且训练结果更快收敛以及收敛效果更好。此外,或许可以尝试添加dropout已防止过拟合。
数据集划分比例
对于小规模样本集(几万量级),常用的分配比例是 60% 训练集、20% 验证集、20% 测试集。
对于大规模样本集(百万级以上),只要验证集和测试集的数量足够即可,例如有 100w 条数据,那么留 1w 验证集,1w 测试集即可。1000w 的数据,同样留 1w 验证集和 1w 测试集。
超参数越少,或者超参数很容易调整,那么可以减少验证集的比例,更多的分配给训练集。
输入层
在构建神经网络时就一定得注意,输入图片是按照rows, cols的逻辑来,也就是高和宽,而不是我们所认为的宽高输入,这在输入图片长宽不同时很重要!!!
神经网络训练解决loss、validation loss(损失函数)波动或不收敛问题相关推荐
- 神经网络训练不稳定问题(loss和accuracy波动大)的一种原因及解决方案
用LSTM做时间序列预测时发现训练刚开始时loss(MSE)下降很快,accuracy(调整R方)上升也很快,但到后面loss总体上下降变慢,并且时有波动,accuracy甚至会经常出现负值,然后又回 ...
- 神经网络训练时如何绘制loss的动态曲线
在神经网络训练中,可以利用tensorboard进行查看loss曲线及graph图,但是比较麻烦,本人想在训练代码中加入一段代码,实现train_loss及val_loss的实时动态变化,方便观察损失 ...
- 神经网络训练过程中出现loss为nan,神经元坏死
最近在手撸Tensorflow2版本的Faster RCNN模型,稍后会进行整理.但在准备好了模型和训练数据之后的训练环节中出现了大岔子,即训练过程中loss变为nan.nan表示not a numb ...
- 卷积神经网络训练算法
神经网络训练本质就是通过Loss function调整w和b的值,达到最好的效果.而CNN优化参数的算法采用的是SGD,通过计算W和b偏导,反向的调整参数,这个时候利用链式求导法则,逐级相乘直到求解d ...
- 如何解决神经网络训练时loss不下降的问题
本文转载,原文链接:https://blog.ailemon.me/2019/02/26/solution-to-loss-doesnt-drop-in-nn-train/ 当我们训练一个神经网络模型 ...
- Loss和神经网络训练
出处:http://blog.csdn.net/han_xiaoyang/article/details/50521064 声明:版权所有,转载请联系作者并注明出处 1.训练 在前一节当中我们讨论了 ...
- 神经网络测试集loss不变_神经网络训练过程中不收敛或者训练失败的原因
在面对模型不收敛的时候,首先要保证训练的次数够多.在训练过程中,loss并不是一直在下降,准确率一直在提升的,会有一些震荡存在.只要总体趋势是在收敛就行.若训练次数够多(一般上千次,上万次,或者几十个 ...
- 二分类神经网络结果准确率50%,loss一直在0.69的解决方法
先参考这篇文章,了解为什么loss是0.69 链接:https://www.jianshu.com/p/45c2180cab17 这个问题很多人在训练自己或者迁移别的网络的时候都会遇到,特别是二分类这 ...
- 神经网络训练时loss不下降的问题
原文地址:如何解决神经网络训练时loss不下降的问题 | AI柠檬 当我们训练一个神经网络模型的时候,我们经常会遇到这样的一个头疼的问题,那就是,神经网络模型的loss值不下降,以致我们无法训练,或者 ...
最新文章
- count/distinct/group by的用法总结
- 微信小程序-豆瓣电影TOP250
- django学习之Model(四)MakingQuery
- Tcp设置发送和接收超时
- 机器人J中WPR_机器人经颅磁刺激(Robotized TMS)技术知多少?
- 开课吧学python靠谱吗-学设计?学Python?看看我的人生是如何开挂!!!
- 自定义self.editButtonItem 改变自定义self.editButtonItem的背景图片
- 【UE】关于UE的一个真实案例
- html系统网页代码大全,html网页的代码大全
- X4扭曲字体或图形 coreldraw_CorelDRAW X4案例教程上-电子教案文档.ppt
- Redis常用命令总结,java开发流程面试
- 2019全国大学生电子设计竞赛备赛笔记--风力摆--板球--模拟曲射电磁炮
- 高通9008固件下载备份工具
- ckplayer6.8 php播放,ckplayer官方版下载-ckplayer播放器v6.8 最新版 - 极光下载站
- 4.VEH(向量化异常处理)
- iptables failed: iptables --wait -t nat -A DOCKER
- C 语言实现面向对象编程
- 这种情况,你会不会离职?
- 黄鸭兄《傲慢是精英的耻辱,谦虚是精英的责任》摘录
- 孤单是对你最好的惩罚