[Day 22] 卷积类明星模型大乱斗 ! EFN特别版

1. 回顾

下列是过去十天我用各种技巧训练的模型,
只要该技巧对 val acc 或 val loss 有胜过 EFN_base,
那我就会将其纳入最後的模型实验。

1.1 验证集准确率比较

恭喜三种不同的learning rate decay和dropout入围最终实验!
0

1.2 验证集损失值比较

恭喜nStepsToAll、nStepsToBlock7、class weight、image augmentation入围最终实验!
1


2. 燃烧吧!我的GPU!

/images/emoticon/emoticon18.gif/images/emoticon/emoticon18.gif/images/emoticon/emoticon18.gif/images/emoticon/emoticon18.gif
好了,那最後我到底做了哪些参数组合呢?

参数 参数空间 长度
LR decay step decay, poly decay ,exp decay,RLOP, None 5
Optimizer SGD, Adam 2
unfreeze last n layers 6, 19, 78, 1000(all) 4
class weights balance, origin 2
epochs 100 1
batch size 128 1

5*2*4*2*1*1 = 80
难道我真的要训练出80个模型吗?
其实也不用,
因为我在前几个模型训练出来就发现:

  1. 只有unfreeze到最後78层的训练效果不好,我果断地把unfreeze last n layers通通设为1000(剩下20个组合)

  2. 然後我发现SGD不管搭配哪种decay都收敛很慢,100轮内绝对赢不了Adam (剩下10个组合)
    接下来基本就是学习率衰减类别权重的比较了。

  • SGD被ADAM打败+unfreeze 78 layers表现最好只有val acc = 0.6000,输给EFN_base
    https://ithelp.ithome.com.tw/upload/images/20211001/20141294k8ySfokMRX.jpg
  1. 我学习率递减的方式是前50轮每25轮循环衰减学习率,後50轮则不循环
  • 学习率递减图(Y轴经过对数处理)
    https://ithelp.ithome.com.tw/upload/images/20211001/201412941NaSekueqX.jpg

3. 最後的最後

最後胜出的参数组合如下:

参数 参数空间
LR decay poly decay
Optimizer Adam
unfreeze last n layers 1000(all)
class weights balance
epochs 100
batch size 128

3.1 在验证集上的表现

https://ithelp.ithome.com.tw/upload/images/20211001/20141294ZxSXgnstBa.jpg

3.2 在8年前的FER2013比赛中我能排第几?

我最终的准确率是0.6500,
排在第5名的位置,
刚好晋升Gold阶级的最後一名 :D
https://ithelp.ithome.com.tw/upload/images/20210930/20141294dtdXxm7qPW.jpg

4. 结语

我在网路上看到有人修改VGG的架构,
搭配上cosine decay和SGD Nesterov,
用二阶段训练了300轮+50轮,
最後达到73.2%准确率。
看来我还有一段很长的路要走...

现在回想起来我还有很多地方可以修改,

  1. Adam其实不是一个擅长马拉松的优化器,现在研究已经发现SGD虽然收敛慢,但是最後收敛效果比较好。
  2. 因为电脑的显示卡等级太低,训练一个模型要花3小时,导致我只能设定epochs = 100
  3. 因为时间因素,二阶段式训练也被我放弃了。
  4. Adam家族有很多变形,像是LookAhead、Ranger都是可以尝试的。
  5. 我还想修改EFN的架构...

但是实务上根本不会有这麽多时间给你开发演算法QQ
就像这个30天的专案一样,
到底最後不到10天能不能做出App呢?
敬请期待!


<<:  爬虫怎麽爬 从零开始的爬虫自学 DAY23 python网路爬虫开爬-5程序优化

>>:  Day 25. v-on的修饰符

Indexed Element、请 TWGL 替程序码减肥

大家好,我是西瓜,你现在看到的是 2021 iThome 铁人赛『如何在网页中绘制 3D 场景?从 ...

【Day3】前端React +Antd 的环境(Docker化)建立 (上)

1.前端的建立过程(上): 我是在本机电脑运行起来本地版本 Container 的静态前端 Serv...

Day 6 | 角色动画制作

今天要为大家介绍我们游戏的角色动画制作,说明如何使用PS与AE输出适合unity的格式,就拿帝江飞行...

Web应用测试工具-Skipfish

Skipfish 是一个主动的Web应用程序安全测试工具 透过执行递归爬网和基於字典的探测 易於使用...

【Day16】React Router

一页式网站 SPA SPA 全名 Single Page Applications 只有一个 HTM...