1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 深度学习模型训练技巧

深度学习模型训练技巧

时间:2020-02-18 11:46:47

相关推荐

深度学习模型训练技巧

博主以前都是拿别人的模型别人的数据做做分类啊,做做目标检测,搞搞学习,最近由于导师的工程需求,自己构造网络,用自己的数据来跑网络,才发现模型训练真的是很有讲究,很有技巧在里面,最直接的几个超参数的设置问题,以前都是听大牛说设置为32、64、128等数,但是到底设置为多少好呢,我今天跑的是一个自己的字符识别的数据集,我分别制作了30*30 100*100两种图片大小,以及分别是10类 800类 6394类的三种Tf_record来进行测试。

根据图片大小来选择网络和超参数:

如果你的图片不是很大的话,比如我的30*30,这个时候做分类的话我肯定不能用VGG和Resnet等这些大的经典网络了,要么把图像变大要么就是用小的网络来进行训练,或者可以把VGG里的pooling时的步长改成1也可以试试(我没试过~~~),如果类别不多(没有上千)就建议用小网络即可,如果是100*100的图片的话还是可以试试用VGG和Resnet等经典网络,

根据你的图片数量和类别数来选择batch_size:

一个理想的训练状态应该是loss缓缓的往下降,accurate缓缓的往上增,达到某个状态收敛了,下降和上升的曲线都是比较光滑且平缓的(下图所示的训练过程就比较的好),可以容许有一点点的波动,但不应该有很大的波动,如果你的训练样本少(少于1000)那直接用全梯度下降就好了,不需要用批梯度下降了,不是说不可以用批梯度,而是没必要,我们用批梯度的目的就是为了加快训练速度,其他并没什么用,用全梯度下降是最有效的训练方式,只是反向传播一次需要很久的时间,训练起来很慢,但是如果你的训练类别比较的多,建议batch_size不要选择太小,上千的类别数,batch_size起码弄个128的样子,不然会震荡严重。

根据网络规模和loss下降速度来选择学习率:

学习率的选择我们往往都是选择0.001、0.0001、0.00001、0.000001等中的一个,但是到底选择哪一个呢,最基本的原则,网络很复杂的情况下学习率不能太低,不然到传后面基本没梯度了,三五层的网络学习率起码要小于1*e-5,不然会下降过快导致震荡,刚开始的时候可以随意的选择一个学习率作为尝试,如果发现loss下降的过快,那就要调低学习率,反之可以相应的调高(当然前提发现是loss降不下去了,出现了较大的震荡,如果loss下降到了零点几,准确率也升到了很高,那自然不用调)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。