train loss和val loss结果分析(详解)

train loss 不断下降,test loss不断下降,说明网络仍在学习;

train loss 不断下降,test loss趋于不变,说明网络过拟合;

train loss 趋于不变,test loss不断下降,说明数据集有问题;

train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目;

train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题。

1.trian和val结果相差很大。

我说的是如果你含有BN层的话,有些人选择把BN层去掉之后,发现trian和val相差不大了。

存在的问题: 对训练集 accuracy可达0.99 loss=1e-2 -3,然而验证集 accuracy 0.5,loss 很高,试了多个初始学习率(0.1 — 0.0001)都不行

解决上述问题: 采取warm up方法 ,对上述问题有点帮助,或者换成SN层,但是显存会增大很多。

训练resnet,由于不finetune,很容易过拟合,paper《Deep Residual Learning for Image Recognition》中对cifar10的实验用了一个trick是 warm up(热身),就是先采用小的学习率(0.01)进行训练,训练了400iterations之后将学习率调整至0.1开始正式训练。

一开始,分别用了四个初始学习率 lr=0.1; 0.01; 0.001; 0.0001; 然后每1000个iterations就降低一次lr。然而这四种初始学习率都试过之后,发现,验证集的accuracy怎么都上不去,都是0.5~0.6之间,而训练集的可以到0.99。而resnet采用了batch normalization,在caffe中,batch normalization 就有一个“坑”,就是use_global_stats 的设置问题。training时候是关闭,testing的时候是要打开,deploy也是要打开的。

对于训练集accuracy达0.99,验证集accuracy是0.5+的情况,以为是batch normalization出问题,最后试了一下warm up,网络在验证集的loss才有所下降

后续补充

  • 7
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值