当前位置:网站首页>训练集Loss收敛,但是测试集Loss震荡的厉害?
训练集Loss收敛,但是测试集Loss震荡的厉害?
2022-08-10 05:29:00 【公众号学一点会一点】
问题场景
今天在调试模型的时候发现训练集上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
本文由 mdnice 多平台发布
边栏推荐
- Rpc interface stress test
- `id` bigint(20) unsigned NOT NULL COMMENT 'Database primary key',
- Joomla vulnerability reproduced
- SQLSERVER 2008 parses data in Json format
- Error when installing oracle rac 11g and executing root.sh
- 基于Servlet的验证码登陆demo
- 深度梳理:防止模型过拟合的方法汇总
- 并发工具类——CountDownLatch、CyclicBarrier、Semaphore、Exchanger的介绍与使用
- OneFlow源码解析:算子指令在虚拟机中的执行
- 细数国产接口协作平台的六把武器!
猜你喜欢
Rpc interface stress test
AVL tree insertion--rotation notes
AVL树的插入--旋转笔记
Arduino框架下合宙ESP32C3 +1.8“tft 网络时钟
pytest测试框架
ThreadPoolExecutor thread pool principle
How cursors work in Pulsar
Buu Web
pytorch框架学习(6)训练一个简单的自己的CNN (三)细节篇
Matlab simulation of multi-factor house price prediction based on BP neural network
随机推荐
Stacks and Queues | Implementing Queues with Stacks | Implementing Stacks with Queues | Basic Theory and Code Principles
基于Qiskit——《量子计算编程实战》读书笔记(六)
一文带你搞懂OAuth2.0
树莓派入门(3)树莓派GPIO学习
FPGA engineer interview questions collection 41~50
Linear Algebra (4)
pytorch框架学习(1)网络的简单构建
【论文笔记1】小样本分类
mysql cdc (2.1.1)inital snapshot数据库的时候设置了5个并发度,se
ThreadPoolExecutor thread pool principle
细数国产接口协作平台的六把武器!
Consulting cdc 2.0 for mysql does not execute flush with read lock. How to ensure bin
FPGA工程师面试试题集锦11~20
Ask you guys.The FlinkCDC2.2.0 version in the CDC community has a description of the supported sqlserver version, please
pytorch框架学习(6)训练一个简单的自己的CNN (三)细节篇
EasyGBS connects to mysql database and prompts "can't connect to mysql server", how to solve it?
summer preschool assignments
图纸怎么折?(A0,A1,A2,A3の图纸如何折成A4大小)
pytest测试框架
Concurrency tool class - introduction and use of CountDownLatch, CyclicBarrier, Semaphore, Exchanger