【AI实战营】resnet50算法调优

网友投稿 1665 2022-05-30

在之前我们使用resnet_v1_50算法进行了美食分类的训练,训练的准确度为88.8%,还是挺高的,作业二中给我们介绍了learning_rate参数,并向我们传授了如何进行调优,总结下自己的调优经验。

何为准确率、精确率、召回率

在这里首先解释几个概念,相信大家在在训练版本中注意到有精确率和准确率两个值,精确率是针对我们预测的结果而言,指的是预测为正的样本中,真正为正的样本所占的比例;召回率指的是真正的正例样本中,预测准确的样本所占的比例;准确率指的是所有样本中预测准确的样本所占的比例。

学习率

学习率(Learning rate)作为监督学习以及深度学习中重要的超参,其决定着目标函数能否收敛到局部最小值以及何时收敛到最小值。合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。

Learning_rate_strategy是学习率策略,分为固定学习率、分段学习率和自适应学习率三种方式。固定学习率我采用的是20:0.001,即以0.0001训练20轮,训练的准确率为0.888021。在训练的过程中,发现个问题,同样的参数设置,准确率每次却不同,所以为了确认调参是否真正的提高了准确率,有的同样的参数训练了多次。我选用了以下几个学习率进行了训练,如下表:

lr学习率

batch_size

准确率

精确率

0.001

1

64

0.914062

0.849062

20:0.001

2

64

0.885417

0.865154

20:0.001,30:0.0001

3

64

0.880208

0.872803

20:0.001,30:0.0002

4

64

0.882812

0872913

0.002

5

32

0.921875

0.913181

0.001

6

【AI实战营】resnet50算法调优

32

0.927083

0.924759

0.001

7

32

0.943475

0.942708

0.001

8

128

0.879746

0.895833

20:0.001,30:0.0001

9

32

0.895833

0.879082

20:0.001,30:0.0001,40:0.00001

10

32

0.934896

0.939904

20:0.001,30:0.0002,40:0.00001

11

32

0.91927

0.907023

0.001

12

32 eval:16

0.925595

0.911472

0.001

13

32 eval:128

0.940104

0.930362

在上表格中我对学习率进行了固定学习率、分段策略、自适应的训练,通过固定学习率与分段学习率的对比应验了最初训练使用较高的学习率可以使训练初期速度比较快,而到了后期就需要降低学习率,来提高训练的准确率,而固定学习率采用单一的学习率,导致后期的训练准确率提高不上来。通过上述表格对比可以发现在后期使用比较低的学习率可以得到提高。通过上述表格我们也不难发现固定学习率的训练准确率不如分段学习,自适应学习率和分段学习率基本不相上下。

Batchsize_rate

batch_size代表一次训练所选取的样本数,影响模型的优化程度和速度,eval_batch_size代表的是一次验证所选取的样本数。

Batch_size值主要对训练数据图片每秒的加载进行了调整和训练,发现32的比64、128的精确率要高。而对于eval参数即每步验证的图片数量,随着该参数增加,准确率增加。

其他参数

use_fp参数代表是否使用混合精度,该参数可以提高训练速度,但是在一定程度上会降低准确率。在训练中也做了其他参数的调整,文档中提到use_fp16该参数可以删除,但是没有找到删除的操作,但可以将其修改成False进行训练。所以建议在市场上对于参数的描述,更加准确些。回到正题,我把True修改成false时,准确率为0.914062,精确率为0.889差的比较大,并且没有像我预料的那样增加反而有所下降。但我修改会True时,准确率提高到了0.934896,由此推理算法准确率在相同参数下,也是有一定的随机性的。

其次还修改了模型保存参数,该参数代表多长时间保存一次模型,将其修改成10s后,从0.9244变成了0.9322,有了少许的提高。

本期我的调参暂告一段落,期待下次与大家继续分享实战经验。

最后给大家分享个训练小技巧,大家在进行调参时,可以在原本的训练作业下,点击修改,如下图:

这样可以在同一训练作业下,进行版本迭代,训练结束后,我们可以通过点击左上角的训练作业版本对比,进行,结果的对比。

AI 机器学习 云学院

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MRS的HBase集群上安装Phoenix并对接superset
下一篇:实战CloudIDE插件开发-前后端方法互相调用
相关文章