首页 » 技术分享 » FER实际训练过程记录 genki4k数据集

FER实际训练过程记录 genki4k数据集

 

文献记载 使用RBF核的SVM在genki4k的test acc为93.2%

全连接神经网络

64*64分辨率 2层

hide_size epoch train_acc test_acc
100 100 88 55
100 200 93 57.5
500 200 100 60

全连接层
全连接层2层,hide_size为100,训练200个epoch即可达到较高的训练准确率,测试准确率只有58%,训练500个epoch图形基本相同。hide_size为500时,很快训练准确率达到100%,耗时更多而test acc仅提高到60%,如下图
这里写图片描述**
加入dropout=0.5,

hide_size epoch train_acc test_acc time
100 200 60 48.8 404s
100 2000 75 57 2600s

加入dropout防止过拟合,训练2000epoch,训练acc为75%,而实际上得到的test acc依然和不加dropout 200epoch的准确率差不多,是否说明经过2000epoch达到的model系数,已经是最优的?模型的可提升空间只能靠more data?

CNN

64*64分辨率 2层Conv和Pool 两层FC

(由于train_test_split的random种子不同,因而同等情况下,每组测试准确率存在一定差异)

patch_size epoch train_acc test_acc train_time
6 10 75 66 827s
5 10 80 60 480s
5 20 83 70 808s
5 100 100 73 3660s

这里写图片描述
再将epoch加到100,当训练到20epoch时,训练准确率即达到100%,测试准确率72%,到100epoch,耗时3660s,测试准确率73%。
本想尝试将所有训练集数据带入模型求一个整体训练集的准确率,但因训练集数据太多(n*64*64*3),维度太大,导致程序崩溃。
经过试验,基本上25个epoch,即可达到训练结果的可视化冗余,同全连接层一样存在较严重的过拟合问题
加入dropout=0.5,结果如下,准确率甚至下降
patch_size epoch train_acc test_acc
5 25 60-70% 59.2

64*64分辨率 3层Conv和Pool 两层FC

patch_size epoch train_acc test_acc train_time 卷积层数 备注
5 20 83 70 808s 2
5 20 89 65.2 1230s 3
5 30 94.6 70 1369s 3 3层fc,random_state=1(含以下)
5 30 67 61.8 1322s 3 keep_prob=0.8
5 50 96.7 73.4 1960s 3 keep_prob=0.95
5 50 94.8 75.5 2357 3 keep_prob=0.9
5 50 88.1 70.5 2548 3 keep_prob=0.85
5 50 90.1 71 2005 3 keep_prob=0.88
5 50 97 77 3490 3 keep_prob=0.92
5 50 91.4 74.4 1964 3 keep_prob=0.92,random_state=0

Hog 深度神经网络(3层,h1=300,h2=100)

hog特征提取,
hide1_size h2_size train_acc test_acc train_time
300 100 100 56 123s
这里写图片描述

转载自原文链接, 如需删除请联系管理员。

原文链接:FER实际训练过程记录 genki4k数据集,转载请注明来源!

0