本文主要是介绍机器学习中训练集精度高,验证集精度低,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
写在最前面:最大的敌人就是自己。多检查,多思考,多受益。
Batch Normalization layer对于新接触机器学习的同学来说是一个大坑,AI模型摸爬滚打一年,总结BN相关实战经验:
1、网络使用BN层,数据一定要做归一化,RGB除以255,单分类标签为0/1,一定要做!!!
2、使用数据增强,一定要可视化看一下增强后的图像与标签,特别是多分类任务,图像处理差值后标签容易出现改变!
3、均值和方差不一定要算,数据量小(小于10g)的情况下建议直接使用ImageNet等大型数据集均值方差,效果可能更好。
4、一次训练任务,精度上升非常快,出现集精度高(iou 0.5),验证集精度低(1e-12),由于dataset的filelist[index]在测试的时候加了一个编号,写为filelist[0],导致对第一张一直训练,搞到凌晨三点没找到原因,写出来提醒他人。
5、少量数据训练情况下,可直接冻结BN层。
这篇关于机器学习中训练集精度高,验证集精度低的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!