神经网络训练解决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(损失函数)波动或不收敛问题相关推荐

  1. 神经网络训练不稳定问题(loss和accuracy波动大)的一种原因及解决方案

    用LSTM做时间序列预测时发现训练刚开始时loss(MSE)下降很快,accuracy(调整R方)上升也很快,但到后面loss总体上下降变慢,并且时有波动,accuracy甚至会经常出现负值,然后又回 ...

  2. 神经网络训练时如何绘制loss的动态曲线

    在神经网络训练中,可以利用tensorboard进行查看loss曲线及graph图,但是比较麻烦,本人想在训练代码中加入一段代码,实现train_loss及val_loss的实时动态变化,方便观察损失 ...

  3. 神经网络训练过程中出现loss为nan,神经元坏死

    最近在手撸Tensorflow2版本的Faster RCNN模型,稍后会进行整理.但在准备好了模型和训练数据之后的训练环节中出现了大岔子,即训练过程中loss变为nan.nan表示not a numb ...

  4. 卷积神经网络训练算法

    神经网络训练本质就是通过Loss function调整w和b的值,达到最好的效果.而CNN优化参数的算法采用的是SGD,通过计算W和b偏导,反向的调整参数,这个时候利用链式求导法则,逐级相乘直到求解d ...

  5. 如何解决神经网络训练时loss不下降的问题

    本文转载,原文链接:https://blog.ailemon.me/2019/02/26/solution-to-loss-doesnt-drop-in-nn-train/ 当我们训练一个神经网络模型 ...

  6. Loss和神经网络训练

    出处:http://blog.csdn.net/han_xiaoyang/article/details/50521064  声明:版权所有,转载请联系作者并注明出处 1.训练 在前一节当中我们讨论了 ...

  7. 神经网络测试集loss不变_神经网络训练过程中不收敛或者训练失败的原因

    在面对模型不收敛的时候,首先要保证训练的次数够多.在训练过程中,loss并不是一直在下降,准确率一直在提升的,会有一些震荡存在.只要总体趋势是在收敛就行.若训练次数够多(一般上千次,上万次,或者几十个 ...

  8. 二分类神经网络结果准确率50%,loss一直在0.69的解决方法

    先参考这篇文章,了解为什么loss是0.69 链接:https://www.jianshu.com/p/45c2180cab17 这个问题很多人在训练自己或者迁移别的网络的时候都会遇到,特别是二分类这 ...

  9. 神经网络训练时loss不下降的问题

    原文地址:如何解决神经网络训练时loss不下降的问题 | AI柠檬 当我们训练一个神经网络模型的时候,我们经常会遇到这样的一个头疼的问题,那就是,神经网络模型的loss值不下降,以致我们无法训练,或者 ...

最新文章

  1. count/distinct/group by的用法总结
  2. 微信小程序-豆瓣电影TOP250
  3. django学习之Model(四)MakingQuery
  4. Tcp设置发送和接收超时
  5. 机器人J中WPR_机器人经颅磁刺激(Robotized TMS)技术知多少?
  6. 开课吧学python靠谱吗-学设计?学Python?看看我的人生是如何开挂!!!
  7. 自定义self.editButtonItem 改变自定义self.editButtonItem的背景图片
  8. 【UE】关于UE的一个真实案例
  9. html系统网页代码大全,html网页的代码大全
  10. X4扭曲字体或图形 coreldraw_CorelDRAW X4案例教程上-电子教案文档.ppt
  11. Redis常用命令总结,java开发流程面试
  12. 2019全国大学生电子设计竞赛备赛笔记--风力摆--板球--模拟曲射电磁炮
  13. 高通9008固件下载备份工具
  14. ckplayer6.8 php播放,ckplayer官方版下载-ckplayer播放器v6.8 最新版 - 极光下载站
  15. 4.VEH(向量化异常处理)
  16. iptables failed: iptables --wait -t nat -A DOCKER
  17. C 语言实现面向对象编程
  18. 这种情况,你会不会离职?
  19. 黄鸭兄《傲慢是精英的耻辱,谦虚是精英的责任》摘录
  20. 孤单是对你最好的惩罚

热门文章

  1. 整数和实数,单精度和双精度
  2. 外卖跑腿app为什么这么火爆?前景怎么样?
  3. CentOS 7.2安装Oracle数据库
  4. 免费的快递查询接口,不需要key
  5. 博客界的至高神:属于自己的WordPress网站,你值得拥有!
  6. Tabby 终端试用
  7. Android 身高计算
  8. 为什么学会了结构化思维,还是不会沟通?
  9. 错误:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server vers
  10. LocalDateTime常用时间,带有T和Z的时间处理