当前位置:网站首页>训练集Loss收敛,但是测试集Loss震荡的厉害?
训练集Loss收敛,但是测试集Loss震荡的厉害?
2022-08-05 11:31:00 【GIS与Climate】
问题场景
今天在调试模型的时候发现训练集上Loss已经收敛了,但是在验证集上Loss震荡的比较厉害,如下图所示:

原因分析
查阅网上各种博客后发现验证集Loss震荡的原因可能有如下:
数据问题,比如训练集和验证集相差太大,数据量太小; batchsize太小,模型学习的规律不够“普适”; loss函数不合适; 学习率太大,模型陷入了局部最优点; 模型的网络结构存在问题; ......
知道了大概的原因之后,就可以逐个进行排查了。
数据上,检查自己的数据集train和valid的划分情况,基本上数据的分布应该是差不多的;数据量上1w+的图像,应该也还行; loss函数换了其他的进行试验还是一样的效果; 学习率使用动态调整策略,应该没什么问题(后面测试的时候即便调整了初试学习率,最后结果还是类似); 模型使用的是比较经典的超分模型,应该问题不大; 调整了下bs,从32调整到48,发现震荡变小了,效果如下图:


所以最终分析应该是batchsize太小的原因,如果可以再增大点估计效果更好,但是奈何GPU显存不够了。
总结
如果遇到Loss在训练集上已经收敛,但是在验证集上震荡比较厉害的情况,要按照可能的原因逐条分析,并且进行尝试。尝试的时候也要注意先进行理论上的分析再跑模型,不然的话可能也是白白浪费算力。

参考
【1】https://blog.csdn.net/qq_40689236/article/details/106794155
【2】https://zhuanlan.zhihu.com/p/483488388
边栏推荐
- 365天挑战LeetCode1000题——Day 050 在二叉树中增加一行 二叉树
- 手把手教你定位线上MySQL慢查询问题,包教包会
- Can't get in to ask questions.I want to ask you a question about the return value (traversal of the graph), please give Xiaobai an answer.
- Discover the joy of C language
- 数据治理体系演进简介
- Android development with Kotlin programming language three loop control
- 【硬件架构的艺术】学习笔记(3)处理多个时钟
- 智能算力的枢纽如何构建?中国云都的淮海智算中心打了个样
- Naive bayes
- hdu2097 nyoj414 sky数 (进制转换)
猜你喜欢
“蘑菇书”是怎样磨出来的?
Scaling-law和模型结构的关系:不是所有的结构放大后都能保持最好性能
API 网关简述
163_技巧_Power BI 一键批量建立自定义字段参数
.NET in-depth analysis of the LINQ framework (6: LINQ execution expressions)
版本控制篇 | 龙智邀您共赴GOPS全球运维大会,探索大规模、敏捷、高质量、开放式的软件研发与运营之路
2022 CCF国际AIOps挑战赛决赛暨AIOps研讨会报名已开启
LeetCode刷题(8)
《分布式云最佳实践》分论坛,8 月 11 日深圳见
Android development with Kotlin programming language II Conditional control
随机推荐
灰度值与热成像理解
Nature:猪死亡1小时后,器官再次运转
SkiaSharp 之 WPF 自绘 投篮小游戏(案例版)
How to write a blog with Golang - Milu.blog development summary
今天告诉你界面控件DevExpress WinForms为何弃用经典视觉样式
2022技能大赛训练题:交换机snmp配置
Guys, I am a novice. I use flinksql to write a simple count of user visits according to the document, but it ends after executing it once.
Three methods for extracting facial features
PG优化篇--执行计划相关项
再获殊荣 | 赛宁网安入选2022年度“培育独角兽”企业榜单
2022杭电多校联赛第六场 题解
【7.29-8.5】写作社区精彩技术博文回顾
The fuse: OAuth 2.0 four authorized login methods must read
反射修改jsessionid实现Session共享
#yyds干货盘点#【愚公系列】2022年08月 Go教学课程 001-Go语言前提简介
#yyds干货盘点#JS数组和树相互转化
Four, kubeadm single master
四、kubeadm单master
一张图理解EOS是什么
I'm going crazy.Again A few days can not be A problem