初始化超参数影响报告 - yubo105139/paper GitHub Wiki
-
原始模型
- base_line_1204 基于best_model原始数据集及训练参数复现。
-
调整学习率
-
lr10e-4: 初始化参数中学习率由10e-5 调整到10e-4
-
lr10e-3: 由于lr10e-4最终未达到完全收敛,将初始化参数中学习率由10e-5 调整到10e-3
-
-
调整模型初始化参数
-
weight_init_kaiming_normal:卷积网络权重初始化由默认的kaiming_uniform调整为kaiming_normal。
-
weight_init_xavier_uniform:由于kaiming_normal最终较于原模型收敛的loss值较高,将卷积网络权重初始化由默认的kaiming_uniform调整为xavier_uniform。
-
-
调整优化策略
-
warmup10000:初始化参数中warmup_iter由-1调整至10000
warmup先用小学习率训练,然后每个step增大一点点,直到达到预先设置的学习率时采用最初设置的学习率进行训练,之后的训练过程学习率再根据训练设置学习策略进行衰减,这样有助于使模型收敛速度变快,效果更佳。
-
模型训练状态比较:
模型 | total_loss最终收敛值 | psnr表现 |
---|---|---|
base_line | 0.58左右 | 上升后平缓上升 |
lr10e-4 | 0.28左右 | 急速上升后下降 |
lr10e-3 | 0.18左右 | 急速上升后下降 |
warmup10000 | 0.60左右 | 上升后平缓上升 |
kaiming_normal | 2.4左右 | 上升后平缓上升 |
Xavier_uniform | 0.50左右 | 上升后平缓上升 |
模型(iter_num) | test_257 | test_250 | test_295 | test_96 | test_93 | test_97 | 总共识别字符数 |
---|---|---|---|---|---|---|---|
OR | 199571 | 97042 | 183013 | 38104 | 43881 | 46583 | 608194 |
best_model(200k) | 227336 | 100888 | 185281 | 39356 | 44174 | 47643 | 644678 |
baseline_1204(200k) | 222142 | 99968 | 184412 | 38943 | 44111 | 47415 | 636991 |
baseline_1204(756k) | 224425 | 100031 | 184689 | 39084 | 44227 | 47679 | 640135 |
lr10e-4(50k) | 244 | 1014 | 308 | 160 | 238 | 148 | 2112 |
lr10e-4(200k) | 338 | 1365 | 370 | 150 | 589 | 210 | 3022 |
lr10e-4(600k) | 231062 | 94273 | 176092 | 37862 | 43706 | 46517 | 629512 |
lr10e-4(756k) | 230282 | 93962 | 175415 | 37608 | 43721 | 46542 | 627530 |
lr10e-3(50k) | 229940 | 91259 | 174137 | 36604 | 43735 | 45103 | 620778 |
lr10e-3(100k) | 229657 | 89825 | 172363 | 36657 | 43791 | 45286 | 617579 |
lr10e-3(600k) | 224473 | 88640 | 169342 | 35889 | 43521 | 44811 | 606676 |
lr10e-3(756k) | 224041 | 88163 | 168923 | 35640 | 43621 | 44327 | 604715 |
warmup(600k) | 222790 | 99936 | 187732 | 39349 | 44212 | 47912 | 641931 |
warmup(756k) | 223304 | 100380 | 187228 | 39596 | 44223 | 47787 | 642518 |
kaiming_normal(756k) | 375 | 1519 | 417 | 209 | 881 | 223 | 3624 |
Xavier_uniform(756k) | 216355 | 95005 | 182878 | 38173 | 43792 | 47141 | 623344 |
分析:
-
模型的total_loss越小并不代表增强图的ocr检出越多。以上模型中lr10e-3(600k),lr10e-3(756k) 两个total_loss最小,但是其总的检出不如OR。
-
lr10e-3(50k),lr10e-3(100k)处loss大在0.2~0.24左右,其增强图超越了OR但不如best_model。
-
lr10e-4 的第50k 以及200k iter的增强图像都处于很糊的状态,在之后的iter处才生成了较清晰的图,而base_line 在200k 就生成了较清晰的增强图, 按理说学习率越大应该越早收敛,可以认为这次学习率的增大,模型的收敛方向发生变化。
-
lr10e-4的最后的两个model其检出结果都高于OR,但不如best_model
-
warmup的训练状态以及检出结果都和baseline 差不多。可能由于本身预设的学习率较小,本身训练的iter值较大,使得设置的10000的warmup值在模型的训练过程中影响不大。
-
kaiming_normal的模型在相同iter下最终的total_loss2.4远大于baseline0.58, 最终的增强图也处于一种很糊糊的状态,最终的检测字符数很低。
-
Xavier_uniform的模型在相同iter下最终的total_loss0.50略低于baseline0.58, 最终的增强图检出大于OR但逊于best_model。大致可以认为相较于标准分布,使用均匀分布初始化模型收敛更快。
原图,best_model, lr10e-3(756k)的增强图
kaiming_normal(756k), Xavier_uniform(756k)生成的增强图
lr10e-4模型第50k,200k,756k个模型生成的增强图
关于loss和检出方向不一致的问题。
当调整算法以尝试改进模型时,损失函数应该要能反映模型是否在改进。“损失”应该是能有助于我们了解预测值与实际值之间的差异。 如果无法反映,那么模型就失去了优化方向。
训练完成时各个模型的各个loss值状态
(s为收敛,d为还在下降,s/d 为无法区分是否收敛)
l_total | l_gradient | l_ocr | l_percep | l_pix | l_seg | |
---|---|---|---|---|---|---|
默认权重 | - | 0.001 | 0.1 | 0.1 | 1.0 | 1 |
base_line(lr_10e-5) | 0.58(d) | 3.0e-3(d) | 0.01(d) | 0.42(d) | 0.155(d) | 2.6e-5(s/d) |
lr_10e-4 | 0.27(d) | 2.84e-3(d) | (2~4)e-3(s) | 0.15(d) | 0.120(d) | 1.8e-5(d) |
lr_10e-3 | 0.17(s) | 2.46e-3(s) | (2~4)e-3(s) | 0.08(s) | 0.092(s) | 1.4e-5(s) |
kaiming_normal | 2.4(d) | 9.8e-3(d) | 0.60(d) | 1.10(s/d) | 0.70(d) | 4.0e-5(s/d) |
Xavier_uniform | 0.50(d) | 3.2e-3(s) | (2~4)e-3(s) | 0.32(d) | 0.150(d) | 2.2e-5(s) |
total_loss主要由l_percep和l_pix影响,loss间的数量级差异较大。lr_10e-3 的loss状态图可以看到,200k出l_percep陡降,total_loss也陡降。
loss降不下去模型无法快速收敛的原因?
猜测可能与loss的梯度量级不同有关,需要根据loss的梯度量级调整loss的权重比。
Gradient domination的问题。 这个问题产生的原因是不同任务的loss的梯度相差过大, 导致梯度小的loss在训练过程中被梯度大的loss所带走。不同的loss, 他们的梯度在训练过程中变化情况也是不一样的;而且不同的loss, 在梯度值相同的时候, 它们在task上的表现也是不同的。
关于多任务的loss权重。如果A和B单独训练, 他们在收敛的时候的梯度分别记为 Grad_a, Grad_b, 那么我们只需要在两个任务一起训练的时候, 分别用各自梯度的倒数对两个任务做平衡, 然后统一乘一个scalar就可以了。
多个loss如何平衡?
当loss的数量级相差较大时怎么进行loss的权重设置。
1.经验设置,在验证集上进行调节找最优。
2.将不同loss的权重当做网络参数进行学习。 GradNorm以及https://arxiv.org/abs/1705.07115
3.当做超参数的搜索问题,使用 grid search 使验证集的 loss最小。
不同的loss会出现互相矛盾的现象,不同的loss组合和权重设定影响很大。需要定性地分析不同损失函数部分在最终结果里起到什么作用。
训练过程问题
提到的添加heatmap分支,两个分支一起训练,会收敛到不是很理想的地方,模型难以发挥其效果,在实验中,分别冻结分支,训练另一个分支到收敛,之后再将整个网络解冻一起训练到收敛。
loss relate ref:
小图的增强ocr测试
1806_best_model:使用best_model对1806数据集进行增强
1806_lr3_756k:使用lr3_756k对1806数据集进行增强
测试小图 | 检出字符总数 | 实际字符总数 | 检出字符正确字符总数 | 识别率 | 召回率 | 总图数 | 错图数 |
---|---|---|---|---|---|---|---|
1204_OR | 4773 | 4816 | 4496 | 0.942 | 0.934 | 1204 | 189 |
1204_GT | 4813 | 4816 | 4518 | 0.939 | 0.938 | 1204 | 181 |
1204_best_model | 4794 | 4816 | 4413 | 0.921 | 0.916 | 1204 | 211 |
1204_lr3_756k | 4815 | 4816 | 4723 | 0.981 | 0.981 | 1204 | 74 |
1806_OR | 7134 | 7224 | 6667 | 0.935 | 0.923 | 1806 | 309 |
1806_GT | 7224 | 7224 | 7224 | 1.0 | 1.0 | 1806 | 0 |
1806_best_model | 7215 | 7224 | 6618 | 0.917 | 0.916 | 1806 | 321 |
1806_lr3_756k | 7175 | 7224 | 6576 | 0.917 | 0.910 | 1806 | 337 |
在训练数据集上,完全收敛后的模型(1204_lr3_756k)识别率上得到了很大的提升, 但是在测试数据集上(1806_lr3_756k)识别率下降,说明过拟合。
数据标注的目的是提高识别,为何识别上不去?
pipline1(原图上检测、识别):
pipline2(baseline,增强图上检测、识别):
pipline3(增强图上检测,得到bbox原图上识别):
pipline4(原图上检测得到bbox,原图上crop后对小图增强、识别):
best_model使用不同pipline在不同测试集上的检出结果。
pipline | test_257 | test_250 | test_295 | test_96 | test_93 | test_97 | 总共识别字符数 |
---|---|---|---|---|---|---|---|
1 | 198391 | 97004 | 182864 | 37865 | 43771 | 46914 | 606809 |
2 | 227294 | 100814 | 186943 | 39536 | 44277 | 47496 | 646360 |
3 | 227946 | 101659 | 187679 | 39522 | 43875 | 47793 | 648474 |
4 | 197692 | 96265 | 183252 | 37488 | 44007 | 46431 | 605134 |
测pipline1原图检出一定要注释掉import enhance ,并在predict_det.py 文件下添加 import pycuda.autoinit 否则使用不同的enhance模型会对检出结果有影响。
lr_10e3(756k)使用不同pipline在不同测试集上的检出结果。
pipline | test_257 | test_250 | test_295 | test_96 | test_93 | test_97 | 总共识别字符数 |
---|---|---|---|---|---|---|---|
1 | 198391 | 97004 | 182864 | 37865 | 43771 | 46914 | 606809 |
2 | 225495 | 88216 | 170078 | 35806 | 43849 | 44722 | 608166 |
3 | 233908 | 95718 | 180103 | 38023 | 43698 | 46853 | 638303 |
4 | 187378 | 88499 | 174366 | 35477 | 43522 | 43893 | 573135 |
结论:
pipline3表现最好,pipline4最差,增强利于检出不利于识别。
模型(iter_num) | loss | psnr | test_257 | test_250 | test_295 | test_96 | test_93 | test_97 | 总共识别字符数 |
---|---|---|---|---|---|---|---|---|---|
OR | - | 199571 | 97042 | 183013 | 38104 | 43881 | 46583 | 608194 | |
best_model(200k) | - | 227336 | 100888 | 185281 | 39356 | 44174 | 47643 | 644678 | |
baseline1204(2k,111epoch) | 1.351 | 6.2007 | 11111 | 22928 | 28789 | 8597 | 19840 | 11250 | 102515 |
baseline1204(4k,222epoch) | 1.236 | 6.4545 | 35160 | 45649 | 109779 | 20194 | 38314 | 26782 | 275878 |
baseline1204(10k,555epoch) | 1.155 | 6.8861 | 165298 | 74492 | 160270 | 31092 | 43872 | 39870 | 514894 |
baseline1204(20k) | 0.963 | 7.7075 | 180467 | 95872 | 184535 | 38318 | 44130 | 47614 | 590936 |
baseline1204(30k) | 0.882 | 8.3008 | 191934 | 98425 | 187515 | 39309 | 43962 | 47988 | 609133 |
baseline1204(50k) | 0.795 | 8.9425 | 201063 | 99425 | 187626 | 39128 | 44074 | 47747 | 608063 |
baseline1204(100k) | 0.653 | 9.7742 | 220364 | 100163 | 185752 | 38644 | 44045 | 47675 | 636643 |
baseline1204(200k) | 0.657 | 9.9889 | 222142 | 99968 | 184412 | 38943 | 44111 | 47415 | 636991 |
baseline1204(300k) | 0.608 | 10.0284 | 222661 | 99753 | 184637 | 38967 | 44195 | 47523 | 637736 |
baseline1204(400k) | 0.617 | 10.0600 | 224403 | 99324 | 184327 | 39137 | 44278 | 47757 | 639226 |
baseline1204(500k) | 0.604 | 10.0900 | 224105 | 100305 | 184110 | 38983 | 44320 | 47568 | 639391 |
baseline1204(600k) | 0.560 | 10.1151 | 224224 | 99723 | 184926 | 38798 | 44262 | 47673 | 639606 |
baseline1204(756k) | 0.586 | 10.1489 | 224425 | 100031 | 184689 | 39084 | 44227 | 47679 | 640135 |
lr10e-3(2k,111epoch) | 0.574 | 10.2129 | 217331 | 95871 | 180249 | 37879 | 44149 | 46843 | 622322 |
lr10e-3(4k,222epoch) | 0.449 | 10.5570 | 228947 | 96938 | 180250 | 38061 | 44367 | 47779 | 636342 |
lr10e-3(6k) | 0.513 | 10.3971 | 230841 | 93182 | 176343 | 37955 | 43996 | 46257 | 628574 |
lr10e-3(8k) | 0.362 | 10.5544 | 231876 | 94200 | 176375 | 37238 | 44093 | 46787 | 630569 |
lr10e-3(10k) | 0.290 | 10.5150 | 231233 | 93914 | 176223 | 37193 | 44105 | 46709 | 629377 |
lr10e-3(16k) | 0.264 | 10.4540 | 233241 | 94121 | 176519 | 37025 | 43975 | 46870 | 631751 |
lr10e-3(20k) | 0.253 | 10.4405 | 231706 | 92419 | 175309 | 37021 | 44004 | 45963 | 626422 |
lr10e-3(26k) | 0.642 | 10.0869 | 229253 | 89496 | 174581 | 36479 | 43831 | 45939 | 619579 |
lr10e-3(30k) | 0.248 | 10.4279 | 230519 | 91258 | 174220 | 37117 | 43951 | 46313 | 623378 |
lr10e-3(40k) | 0.223 | 10.3569 | 228526 | 90878 | 173854 | 36988 | 43899 | 45704 | 619849 |
lr10e-3(50k) | 0.230 | 10.3260 | 229940 | 91259 | 174137 | 36604 | 43735 | 45103 | 620778 |
lr10e-3(100k) | 0.195 | 10.2464 | 229657 | 89825 | 172363 | 36657 | 43791 | 45286 | 617579 |
lr10e-3(200k) | 0.170 | 10.0614 | 226156 | 88996 | 171092 | 36065 | 43714 | 45073 | 611096 |
lr10e-3(300k) | 0.171 | 10.0358 | 224615 | 87740 | 170335 | 35965 | 43747 | 44769 | 607171 |
lr10e-3(600k) | 0.169 | 10.0080 | 224473 | 88640 | 169342 | 35889 | 43521 | 44811 | 606676 |
lr10e-3(756k) | 0.174 | 9.9977 | 224041 | 88163 | 168923 | 35640 | 43621 | 44327 | 604715 |
关系图(点为baseline1204, 三角为lr10e-3) | |
---|---|
total_loss 和检出的关系 | ![]() |
psnr和total_loss的关系 | ![]() |
psnr和检出的关系(移除了psnr<9 的点) | ![]() |
- 多组实验的total_loss 表现都是在0.18左右达到收敛,但是total_loss 在0.6左右检出值最优
- 相同的psnr值,检出数相差可以很大,推论:psnr和检出没什么干系。
模型(iter_num) | loss | l_pix | l_per | l_grad | l_seg | l_ocr | 总共识别字符数 |
---|---|---|---|---|---|---|---|
默认权重 | - | 1 | 0.1 | 0.001 | 1 | 0.1 | |
baseline1204(2k,111epoch) | 1.351 | 2.9165e-01 | 9.3406e-01 | 3.4648e-03 | 4.8700e-04 | 1.2110e-01 | 102515 |
baseline1204(4k,222epoch) | 1.236 | 2.7110e-01 | 8.0909e-01 | 3.5889e-03 | 3.2826e-04 | 1.5150e-01 | 275878 |
baseline1204(10k,555epoch) | 1.155 | 2.3637e-01 | 7.5331e-01 | 3.5802e-03 | 9.2775e-05 | 1.6143e-01 | 514894 |
baseline1204(20k) | 0.963 | 2.2273e-01 | 6.6270e-01 | 3.7540e-03 | 5.9486e-05 | 7.4145e-02 | 590936 |
baseline1204(30k) | 0.882 | 1.8938e-01 | 6.1364e-01 | 3.5402e-03 | 3.0466e-05 | 7.5153e-02 | 609133 |
baseline1204(50k) | 0.795 | 1.8443e-01 | 5.6089e-01 | 3.5417e-03 | 3.5417e-03 | 4.6343e-02 | 608063 |
baseline1204(100k) | 0.653 | 1.6972e-01 | 4.6261e-01 | 3.3870e-03 | 2.6466e-05 | 1.7121e-02 | 636643 |
baseline1204(200k) | 0.657 | 1.6192e-01 | 4.3615e-01 | 3.0386e-03 | 3.6951e-05 | 5.5690e-02 | 636991 |
baseline1204(300k) | 0.608 | 1.5288e-01 | 4.4025e-01 | 3.0458e-03 | 2.5142e-05 | 1.2240e-02 | 637736 |
baseline1204(400k) | 0.617 | 1.6464e-01 | 4.3723e-01 | 3.1304e-03 | 4.2757e-05 | 1.2002e-02 | 639226 |
baseline1204(500k) | 0.604 | 1.5041e-01 | 4.3033e-01 | 2.9661e-03 | 2.1230e-05 | 2.0188e-02 | 639391 |
baseline1204(600k) | 0.560 | 1.4367e-01 | 4.0717e-01 | 2.8991e-03 | 1.8555e-05 | 5.5190e-03 | 639606 |
baseline1204(756k) | 0.586 | 1.5300e-01 | 4.1619e-01 | 2.9868e-03 | 2.9853e-05 | 1.3538e-02 | 640135 |
lr10e-3(2k,111epoch) | 0.574 | 1.4767e-01 | 3.9756e-01 | 3.1523e-03 | 2.3951e-05 | 2.5522e-02 | 622322 |
lr10e-3(4k,222epoch) | 0.449 | 1.2961e-01 | 2.8770e-01 | 3.0113e-03 | 2.1443e-05 | 2.8300e-02 | 636342 |
lr10e-3(6k) | 0.513 | 1.3636e-01 | 3.3041e-01 | 2.9646e-03 | 3.7195e-05 | 4.3096e-02 | 628574 |
lr10e-3(8k) | 0.362 | 1.2607e-01 | 2.2903e-01 | 2.9155e-03 | 2.6014e-05 | 3.5500e-03 | 630569 |
lr10e-3(10k) | 0.290 | 1.1317e-01 | 1.7239e-01 | 2.7615e-03 | 1.6480e-05 | 1.4499e-03 | 629377 |
lr10e-3(16k) | 0.264 | 1.0889e-01 | 1.5007e-01 | 2.6420e-03 | 1.4535e-05 | 2.3820e-03 | 631751 |
lr10e-3(20k) | 0.253 | 1.0554e-01 | 1.4288e-01 | 2.6647e-03 | 1.3967e-05 | 1.7751e-03 | 626422 |
lr10e-3(26k) | 0.642 | 1.4032e-01 | 4.0103e-01 | 3.1131e-03 | 2.8016e-05 | 9.7438e-02 | 619579 |
lr10e-3(30k) | 0.248 | 1.0662e-01 | 1.3617e-01 | 2.7521e-03 | 1.5284e-05 | 1.9468e-03 | 623378 |
lr10e-3(40k) | 0.223 | 1.0372e-01 | 1.1567e-01 | 2.6794e-03 | 1.4630e-05 | 1.2809e-03 | 619849 |
lr10e-3(50k) | 0.230 | 9.7411e-02 | 1.1919e-01 | 2.5340e-03 | 1.2232e-05 | 1.1173e-02 | 620778 |
lr10e-3(100k) | 0.195 | 9.5331e-02 | 9.6108e-02 | 2.5372e-03 | 1.1723e-05 | 1.1236e-03 | 617579 |
lr10e-3(200k) | 0.170 | 8.9296e-02 | 7.7286e-02 | 2.4087e-03 | 9.7356e-06 | 9.5730e-04 | 611096 |
lr10e-3(300k) | 0.171 | 9.1674e-02 | 7.5246e-02 | 2.4609e-03 | 1.2222e-05 | 1.0662e-03 | 607171 |
lr10e-3(600k) | 0.169 | 9.0441e-02 | 7.5284e-02 | 2.4490e-03 | 1.0392e-05 | 1.0678e-03 | 606676 |
lr10e-3(756k) | 0.174 | 9.5658e-02 | 7.5309e-02 | 2.5890e-03 | 1.2271e-05 | 8.4880e-04 | 604715 |
对上表数据作图:
各个loss和检出的关系(点为baseline1204, 三角为lr10e-3;去除检出小于300000) | |
---|---|
l_pix 和检出字符 | ![]() |
l_per和检出字符 | ![]() |
l_grad和检出字符 | ![]() |
l_seg和检出字符 | ![]() |
l_ocr和检出字符 | ![]() |
l_pix,l_per,l_grad 表现趋势一致。
l_seg在较大时检出数也可以很大, l_seg的影响不大。
l_ocr在loss跨度很大的范围可以得到相当的检出结果。
增强图baseline1204(2k 、4k、 10k iter)
增强图lr10e-3(2k 、4k、 10k iter)
增强图lr10e-3(16k 、20k、 26k iter)
增强图lr10e-3(30k 、40k、50k iter)
增强图lr10e-3(100k 、600k、756k iter)
lr3_756模型的增强效果
训练集中的数据测试
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
测试集小图增强测试
左边的图为原图和gt,右边的图为best_model增强 和lr3_756增强
测试集上有的原图学习到了去噪,因为该图在训练集出现过。
baseline1204
baseline1806
学习率为10-4
学习率为10-3
warm_up_10000
weight_init_kaiming_normal
weight_init_Xavier_uniform
目的:
初始化参数的影响,模型训练过慢,模型尚未收敛的原因。
结论:
-
学习率为10e-3 可以在3000个epoch左右达到收敛,说明默认的学习率10-5过小,训练12500个epoch还未达到收敛,训练速度慢与其有关;
-
增强图检出字符数和模型的total_loss不一致,并非total_loss越小检出越多的关系。
-
使用均匀分布做初始化收敛更快;
-
各个loss的作用以及权重设置需要进行确认和调整;
在baseline默认设置上,控制变量调节:
学习率为10-3, decay为10-4
学习率为10-3, decay为10-3
初始化为Xavier_uniform, 学习率为10-4
初始化为Xavier_uniform, 学习率为10-3
初始化为Xavier_uniform, 学习率为10-3, decay为10-5
学习率为10-3,loss权重全设置为1
学习率为10-3,移除率l_per ,其他loss权重设置为1
学习率为10-3,只留l_pix, l_seg 权重为1
学习率为10-3,decay为10-3, 只留l_pix, l_seg 权重为1
目的:
-
学习率为10-3时,衰减权重怎样设置
-
初始化为Xavier_uniform,不同学习率的调节,与kaiming_uniform对比
-
不同loss的影响
学习率lr3加衰减实验 | |
---|---|
学习率为10-3 | ![]() |
学习率为10-3, decay为10-4 | ![]() |
学习率为10-3, decay为10-3 | ![]() |
结论:
- lr为10-3 ,decay设置为0,10e-4,10e-3 其学习率的变化都一样。在100k iter处由10-3 衰减到2.5*10-4 ,然后在200k iter处衰减到6.25*10-5 直到训练结束。
- 训练表中衰减率不一样但学习率的变化却一样。进一步学习发现,此处的adam优化器中的设置的decay与平常的学习率衰减权重有所不一样。具体参考:优化器和学习率的衰减权重
- 该训练中的学习率主要与其调度策略的参数设置有关。
初始化为Xavier_uniform实验 | |
---|---|
学习率为10-4 | ![]() |
学习率为10-3 | ![]() |
学习率为10-3, decay为10-5 | ![]() |
多组模型进行测试,验证训练收敛后的模型增强图的检出字符数:
模型(iter_num) | test_257 | test_250 | test_295 | test_96 | test_93 | test_97 | 总共识别字符数 |
---|---|---|---|---|---|---|---|
OR | 199571 | 97042 | 183013 | 38104 | 43881 | 46583 | 608194 |
best_model(200k) | 227336 | 100888 | 185281 | 39356 | 44174 | 47643 | 644678 |
lr3(11812epoch) | 224041 | 88163 | 168923 | 35640 | 43621 | 44327 | 604715 |
lr3_decay10-4(11812epoch) | 226226 | 86283 | 168807 | 35736 | 43451 | 44400 | 604903 |
lr3_decay10-3(11812epoch) | 235891 | 91524 | 171588 | 37068 | 43803 | 46766 | 626,640 |
Xavier_uniform_lr3(11812epoch) | 217267 | 83844 | 168285 | 35263 | 43560 | 43557 | 591776 |
增强图图像对比,从左到右lr3, lr3_decay10-4,lr3_decay10-3,Xavier_uniform_lr3:
结论:
-
对比Xavier_uniform和kaiming_uniform的训练状态, Xavier_uniform收敛速度稍快。
-
使用10-3的lr时total_loss最终都在0.18左右收敛。
-
多个收敛后的模型检出结果对比,收敛模型生成的增强图效果基本一致,检出字符数表现也都不太好。
loss实验 | |
---|---|
1.loss权重全设置为1 | ![]() |
2.移除l_per ,其他loss权重设置为1 | ![]() |
3.lr 10-3 只保留l_pix和l_seg 权重都为1 | ![]() |
4.学习率为10-3,只留l_pix, l_seg 权重为1,decay为10-3 | ![]() |
5.学习率为10-3,只保留l_pix | ![]() |
6.学习率为10-3,只保留l_per | ![]() |
7.只保留了l_pix和l_ocr | ![]() |
8.只保留了l_pix和l_ocr和l_seg | ![]() |
9.只保留了l_ocr | ![]() |
10.只保留l_ocr和l_seg | ![]() |
只保留了l_pix,l_ocr和l_seg,l_per | ![]() |
1.训练代码修改
增强模型训练代码整理。训练代码位置:BasicText
- c++扩展包导致的环境依赖问题。只需要在本机重新编译,不再需要打包train环境。
- torch_ocr子模块拉取问题
- 添加多种学习率调度策略,添加学习率曲线
- 添加对验证集计算loss,以及绘制loss曲线
- 同时使用torch.utils.tensorboard和TensorboardX的问题
- 验证loss和训练loss分离
各个模型在验证集上的loss状况。使用latest_model测
目的:已训练好的模型在验证集上的各个数值表现和检出字符数的关系。
psnr | l_total | l_grad | l_ocr | l_per | l_pix | l_seg | 总共检出字符数 | |
---|---|---|---|---|---|---|---|---|
best_model(200k) | 11.1412 | 8.4104 | 3.0599 | 0.8560 | 4.3231 | 0.1642 | 0.0074 | 644678 |
baseline_lr5(756k) (0.001,0.1,0.1,1,1) | 11.0515 | 8.3087 | 3.0830 | 0.8630 | 4.1906 | 0.1647 | 0.0073 | 640135 |
baseline_lr4(756k) (0.001,0.1,0.1,1,1) | 10.5058 | 8.9707 | 3.0787 | 2.2659 | 3.4798 | 0.1397 | 0.0067 | 627530 |
baseline_lr3(756k)(0.001,0.1,0.1,1,1) | 10.3005 | 8.3141 | 3.0056 | 1.7952 | 3.3781 | 0.1257 | 0.0085 | 604621 |
权重全为1 | 10.2191 | 8.7827 | 2.9275 | 2.3206 | 3.3823 | 0.1426 | 0.0098 | 603384 |
rm_per,其他为1 | 9.8202 | 10.2339 | 3.0862 | 2.3903 | 4.6230 | 0.1137 | 0.0206 | 508350 |
只留l_pix和l_seg 权重都为1 | 9.7627 | 9.2014 | 3.0056 | 2.1260 | 3.9465 | 0.1015 | 0.0219 | 556912 |
只保留l_pix | 9.7388 | 13.6995 | 3.0174 | 2.2051 | 3.9016 | 0.1021 | 4.4732 | 558832 |
只保留l_per | 7.4538 | 18.7989 | 6.8874 | 7.7824 | 3.6795 | 0.3767 | 0.0729 | 547455 |
增加实验 | ||||||||
只保留l_ocr | 2.2175 | 50.5127 | 10.7321 | 1.6902 | 35.4916 | 2.5507 | 0.0431 | 18810 |
只保留l_ocr和l_seg | 2.0994 | 46.5192 | 9.9674 | 1.7863 | 32.2077 | 2.5492 | 0.0087 | - |
只保留了l_pix和l_ocr | 10.0543 | 10.8565 | 2.8794 | 2.8243 | 4.9785 | 0.1087 | 0.0656 | 540485 |
只保留了l_pix,l_ocr和l_seg | 9.9689 | 10.5867 | 2.9328 | 2.4721 | 5.0538 | 0.1110 | 0.0171 | 551644 |
只保留了l_pix,l_ocr和l_seg,l_per | 10.3309 | 8.5965 | 3.0681 | 1.8299 | 3.5582 | 0.1323 | 0.0081 |
模型 | test_257 | test_250 | test_295 | test_96 | test_93 | test_97 | 总共检出字符数 |
---|---|---|---|---|---|---|---|
OR | 199571 | 97042 | 183013 | 38104 | 43881 | 46583 | 608194 |
best_model(200k) | 227336 | 100888 | 185281 | 39356 | 44174 | 47643 | 644678 |
baseline_lr3(0.001,0.1,0.1,1,1) | 224153 | 88078 | 168766 | 35717 | 43559 | 44348 | 604621 |
权重全为1 | 221770 | 85939 | 171715 | 35318 | 43381 | 45261 | 603384 |
rm_per,其他为1 | 173902 | 71466 | 154204 | 27907 | 41249 | 39622 | 508350 |
只留l_pix和l_seg 权重都为1 | 196350 | 80302 | 163523 | 31995 | 42440 | 42002 | 556912 |
只保留l_pix | 197922 | 79278 | 164472 | 33010 | 42456 | 41694 | 558832 |
只保留l_per | 183861 | 82317 | 163369 | 32955 | 43554 | 41399 | 547455 |
只保留l_ocr | 2404 | 3240 | 3663 | 1441 | 3404 | 4658 | 18810 |
只保留l_ocr和l_seg | 307 | 744 | 481 | 119 | 145 | 33 | 1829 |
只保留l_pix,l_ocr | 194648 | 73753 | 159893 | 30326 | 41304 | 40561 | 540485 |
只保留了l_pix,l_ocr和l_seg | 200929 | 74892 | 161442 | 30927 | 42475 | 40979 | 551644 |
只保留了l_pix,l_ocr和l_seg,l_per | 219006 | 82327 | 167834 | 34863 | 43042 | 44159 | 591231 |
-
训练集上loss收敛后的模型(加粗的这些模型)生成的增强图,检出字符数都下降了。
-
由best_model在验证集上的表现, 可以看到psnr以及l_ocr和l_seg的重要性,psnr的值相较与其他模型最高,两个loss的值相较与其他模型最小,其他loss与其他模型相比差异不大。根据该表现,增加了最后四组 保留l_ocr和l_seg的实验。
-
根据最后几组实验(添加了验证集的loss), 可以看到在100k个iter也就是1500多个epoch左右,验证集上的loss都达到了一个低点,而训练集loss整个训练过程一直处于不断收敛的状态。说明模型在训练集上的过拟合。
目的:是否验证集上的表现能成为一个模型终止训练的标志?即在验证集上表现最好时,模型的泛化能力最好,增强效果最好,检出结果最好?
取验证集上状态最优的模型,生成增强图,对比与收敛后增强图的效果,测量其检出字符数。
模型 | psnr | l_total | l_grad | l_ocr | l_per | l_pix | l_seg | 总共检出字符数 |
---|---|---|---|---|---|---|---|---|
best_model(200k) | 11.1412 | 8.4104 | 3.0599 | 0.8560 | 4.3231 | 0.1642 | 0.0074 | 644678 |
baseline_lr5(756k) (0.001,0.1,0.1,1,1) | 11.0515 | 8.3087 | 3.0830 | 0.8630 | 4.1906 | 0.1647 | 0.0073 | 640135 |
baseline_lr3(756k)(0.001,0.1,0.1,1,1) | 10.3005 | 8.3141 | 3.0056 | 1.7952 | 3.3781 | 0.1257 | 0.0085 | 604621 |
只保留了l_pix和l_ocr(100k) | 10.9461 | 9.4164 | 2.6504 | 0.5489 | 6.0678 | 0.1102 | 0.0391 | 614931 |
只保留了l_pix和l_ocr(50k) | 11.0824 | 9.8436 | 2.7324 | 0.4820 | 6.4682 | 0.1192 | 0.0418 | 621063 |
只保留了l_pix,l_ocr和l_seg(60k) | 11.0541 | 9.5679 | 2.7056 | 0.5059 | 6.2356 | 0.1143 | 0.0066 | 616638 |
只保留了l_pix,l_ocr和l_seg(70k) | 11.0480 | 9.3509 | 2.6819 | 0.4952 | 6.0570 | 0.1103 | 0.0065 | 624172 |
只保留了l_pix,l_ocr和l_seg(80k) | 11.0112 | 9.1931 | 2.6686 | 0.5080 | 5.9016 | 0.1082 | 0.0067 | 620525 |
模型 | test_257 | test_250 | test_295 | test_96 | test_93 | test_97 | 总共检出字符数 |
---|---|---|---|---|---|---|---|
OR | 199571 | 97042 | 183013 | 38104 | 43881 | 46583 | 608194 |
best_model(200k) | 227336 | 100888 | 185281 | 39356 | 44174 | 47643 | 644678 |
只保留了l_pix和l_ocr(100k) | 215831 | 92619 | 179457 | 37609 | 43322 | 46093 | 614931 |
只保留了l_pix和l_ocr(50k) | 220432 | 93217 | 180158 | 37425 | 43371 | 46460 | 621063 |
只保留了l_pix,l_ocr和l_seg(60k) | 218340 | 92401 | 179420 | 37114 | 43828 | 45535 | 616,638 |
只保留了l_pix,l_ocr和l_seg(70k) | 225769 | 93005 | 179191 | 37054 | 43389 | 45764 | 624172 |
只保留了l_pix,l_ocr和l_seg(80k) | 222395 | 92241 | 178992 | 37141 | 43621 | 46135 | 620525 |
(以上为根据tensorboard图状态,粗略取了大致位置的模型进行的测试,选取依据:psnr较大,l_total 较小)
- 相较于最终收敛的模型, 验证集上各指标表现好的模型,其检出字符数确实要多。
- 根据“只保留了l_pix,l_ocr和l_seg(70k)” 与bestmodel的对比, psnr 稍低,各个loss都较bestmodel低, 但l_per 较高, 结果检出稍差。据此,添加训练保留l_pix,l_ocr,l_seg,l_per, 只去除l_grad.
实验过程:
遍历所有训练得到的模型, 生成验证集的统计值,写入表。 读取验证统计表,排序得到最优值,对前几个最优模型进行检出测评。
- psnr值最大的前3个模型
- l_total值最小的前3个模型
- l_total/psnr 值最小的前3个模型
模型 | psnr | l_total | l_grad | l_ocr | l_per | l_pix | l_seg | 总共检出字符数 |
---|---|---|---|---|---|---|---|---|
best_model(200k) | 11.1412 | 8.4104 | 3.0599 | 0.8560 | 4.3231 | 0.1642 | 0.0074 | 644678 |
baseline_lr5(756k) (0.001,0.1,0.1,1,1) | 11.0515 | 8.3087 | 3.0830 | 0.8630 | 4.1906 | 0.1647 | 0.0073 | 640135 |
baseline_lr3(756k)(0.001,0.1,0.1,1,1) | 10.3005 | 8.3141 | 3.0056 | 1.7952 | 3.3781 | 0.1257 | 0.0085 | 604621 |
warm_up_10000_66k | 11.5609 | 9.0874 | 3.1268 | 0.6518 | 5.1349 | 0.1658 | 0.0081 | 635213 |
warm_up_10000_62k | 11.552 | 9.157 | 3.1355 | 0.6599 | 5.1872 | 0.1662 | 0.0082 | 633706 |
warm_up_10000_52k | 11.5417 | 9.3486 | 3.1702 | 0.6547 | 5.3496 | 0.166 | 0.0082 | 633072 |
baseline1204_lr3_decay10-4_90k | 10.6091 | 7.0767 | 2.9156 | 0.9895 | 3.0439 | 0.1228 | 0.0049 | 620317 |
baseline1204_lr3_decay10-4_84k | 10.6041 | 7.0948 | 2.9269 | 1.0019 | 3.0392 | 0.1219 | 0.0048 | 621000 |
baseline1204_lr3_decay10-4_74k | 10.6198 | 7.1287 | 2.908 | 1.0394 | 3.0541 | 0.1222 | 0.0049 | 618380 |
loss_weight_all1_bak_14k | 10.4449 | 7.0944 | 2.8749 | 0.8655 | 3.1934 | 0.1552 | 0.0054 | 630184 |
baseline1806_origin_748k | 13.7143 | 7.1715 | 2.7027 | 0.759 | 3.5845 | 0.1239 | 0.0014 | 623056 |
baseline1806_origin_744k | 13.7135 | 7.1721 | 2.7027 | 0.7583 | 3.5858 | 0.124 | 0.0014 | 623060 |
baseline1806_origin_754k | 13.7127 | 7.1689 | 2.702 | 0.7588 | 3.5828 | 0.1239 | 0.0014 | 623437 |
baseline1806_origin_772k | 13.7111 | 7.1651 | 2.6996 | 0.7635 | 3.5771 | 0.1236 | 0.0013 | 624468 |
baseline1806_origin_latest | 13.7097 | 7.1652 | 2.7002 | 0.7645 | 3.5754 | 0.1237 | 0.0014 | 623676 |
baseline1806_origin_770k | 13.7116 | 7.1662 | 2.7008 | 0.7635 | 3.5768 | 0.1237 | 0.0014 | 624184 |
根据该方法筛选的模型其增强图相比于原图都有提升,但是都未能超过best_model。
此处决定再复现下之前于波得到的模型,看能否得到原始模型越往后训,相较于best_model检出字符越多的结论。
模型 | test_257 | test_250 | test_295 | test_96 | test_93 | test_97 | 总共检出字符数 | |
---|---|---|---|---|---|---|---|---|
OR | 199571 | 97042 | 183013 | 38104 | 43881 | 46583 | 608194 | |
best_model(200k) | 227336 | 100888 | 185281 | 39356 | 44174 | 47643 | 644678 | |
psnr最大(1204dataset) | warm_up_10000_66k | 211158 | 100640 | 191287 | 39743 | 44122 | 48263 | 635213 |
warm_up_10000_62k | 209506 | 100564 | 191390 | 39809 | 44145 | 48292 | 633706 | |
warm_up_10000_52k | 208255 | 100598 | 191817 | 40274 | 44017 | 48111 | 633072 | |
l_total最小 | baseline1204_lr3_decay10-4_90k | - | - | - | - | - | - | |
loss_weight_all1_bak_14k | 234719 | 91507 | 176546 | 37364 | 43795 | 46253 | 630184 | |
baseline1204_lr3_decay10-4_84k | - | - | - | - | - | - | ||
l_total/psnr最小 | baseline1204_lr3_decay10-4_90k | 231747 | 89390 | 171832 | 37118 | 43706 | 46524 | 620317 |
baseline1204_lr3_decay10-4_84k | 229358 | 90685 | 172711 | 37387 | 43772 | 47087 | 621000 | |
baseline1204_lr3_decay10-4_74k | 230302 | 89845 | 171894 | 37174 | 43709 | 45456 | 618380 | |
psnr最大(1806) | baseline1806_origin_748k | 215220 | 97300 | 180895 | 38653 | 44110 | 46878 | 623056 |
baseline1806_origin_744k | 215147 | 97347 | 180775 | 38847 | 44153 | 46791 | 623060 | |
baseline1806_origin_754k | 215607 | 97218 | 181301 | 38621 | 44043 | 46647 | 623437 | |
l_total/psnr最小(1806) | baseline1806_origin_772k | 216102 | 97242 | 181562 | 38623 | 44191 | 46748 | 624468 |
baseline1806_origin_latest | 215852 | 97495 | 180889 | 38538 | 44045 | 46857 | 623676 | |
baseline1806_origin_770k | 215934 | 97056 | 181537 | 38699 | 44143 | 46815 | 624184 |
目的:
原始baseline越往后训练,相较于best_model,模型的检出字符越多的结论是否正确?
分别在40的服务器上和普通机器上用同样的设置做了复现.
训练状态 | |
---|---|
v100 | ![]() |
2070Ti | ![]() |
- 相较与之前的baseline复现实验 , 使用的验证集不一样,本次复现实验使用的验证集质量更优. 之前的复现结果验证集上的psnr值在持续上升. 此处,其结果表现为过拟合.
进一步对生成的模型做检出测试, 与之前的复现结果进行对比.
字符数格式: 第一次复现结果/tesla_v100复现结果/2070 复现结果
模型(iter_num) | test_257 | test_250 | test_295 | test_96 | test_93 | test_97 | 总共识别字符数 |
---|---|---|---|---|---|---|---|
OR | 199571 | 97042 | 183013 | 38104 | 43881 | 46583 | 608194 |
best_model(200k) | 227336 | 100888 | 185281 | 39356 | 44174 | 47643 | 644678 |
baseline1204(4k) | 35160/58758/45367 | 45649/49506/48516 | 109779/117646/114712 | 20194/21907/21234 | 38314/40372/39917 | 26782/29276/28751 | 275878/317465/298497 |
baseline1204(10k) | 165298/169557/166362 | 74492/80055/78868 | 160270/167492/165686 | 31092/32861/32729 | 43872/44091/43905 | 39870/41323/41189 | 514894/535379/528739 |
baseline1204(30k) | 191934/207722/194060 | 98425/100199/98614 | 187515/187854/187443 | 39309/40059/39329 | 43962/43881/44159 | 47988/47726/48163 | 609133/627441/611768 |
baseline1204(50k) | 201063/213047/205614 | 99425/99663/99409 | 187626/189096/189841 | 39128/39647/39680 | 44074/43891/43879 | 47747/48054/48035 | 608063/633398/626458 |
baseline1204(100k) | 220364/214980/209842 | 100163/99067/100171 | 185752/185511/188777 | 38644/38684/39133 | 44045/44013/44218 | 47675/47856/48178 | 636643/630111/630319 |
baseline1204(200k) | 222142/217262/211591 | 99968/98525/100176 | 184412/184567/188945 | 38943/39141/39081 | 44111/44052/44043 | 47415/47743/47951 | 636991/631290/631787 |
baseline1204(400k) | 224403/218266/211953 | 99324/98602/100077 | 184327/184182/187861 | 39137/38527/39791 | 44278/44055/44115 | 47757/47389/47939 | 639226/631021/631736 |
baseline1204(600k) | 224105/220817/214178 | 100305/97346/99244 | 184110/184319/187761 | 38983/38820/39616 | 44320/43957/44198 | 47568/47577/47676 | 639391/632836/632673 |
baseline1204(700k) | 224224/220819/214931 | 99723/97413/99047 | 184926/184621/187521 | 38798/38980/39582 | 44262/43984/44220 | 47673/47273/47681 | 639606/633090/632982 |
baseline1204(800k) | 224425/220995/215788 | 100031/97513/98531 | 184689/184461/187239 | 39084/38788/39341 | 44227/44197/44201 | 47679/47365/47376 | 640135/633319/632476 |
baseline1204(900k) | -/220885/216573 | -/98180/98692 | -/184893/187291 | -/38774/39319 | -/44050/44147 | -/47399/47454 | -/634181/633476 |
baseline1204(1000k) | -/221143/216247 | -/97526/98399 | -/184789/187107 | -/38684/39336 | -/44072/43981 | -/47543/47338 | -/633757/632408 |
baseline1204(1136k) | -/221807/216970 | -/97623/97937 | -/185473/186746 | -/38722/39538 | -/44164/44036 | -/47677/47362 | -/635466/632589 |
结论:
几次复现的实验结果可以看到,检出字符数都未能超过best_model.
原始baseline越往后训练,并没有呈现明显的检出越來越多的趋势.
在两个不同的机器上使用同样的设置复现.可以看到表现基本一致,不管是训练状态的变化趋势还是检出结果,差异都不大.
再次验证是否使用的训练代码不同而导致的复现结果不同.
使用余波之前使用的代码及配置, 训练了模型, 进行测试.
模型(iter_num) | test_257 | test_250 | test_295 | test_96 | test_93 | test_97 | 总共识别字符数 |
---|---|---|---|---|---|---|---|
OR | 199571 | 97042 | 183013 | 38104 | 43881 | 46583 | 608194 |
best_model(200k) | 227336 | 100888 | 185281 | 39356 | 44174 | 47643 | 644678 |
review_model(50万iter) | 196010 | 96004 | 182691 | 38588 | 44111 | 47125 | 604529 |
review_model(52万iter) | 195791 | 95915 | 182459 | 38617 | 44138 | 47136 | 604056 |
review_model(60万iter) | 195351 | 95684 | 182370 | 38479 | 44098 | 47098 | 603080 |
review_model(80万iter) | 196354 | 96664 | 183031 | 38604 | 44012 | 47280 | 605945 |
review_model(100万iter) | 196649 | 96556 | 182292 | 38318 | 43751 | 47173 | 604739 |
review_model(110万iter) | 195909 | 96626 | 182343 | 38421 | 43780 | 47035 | 604114 |
2x_model(60万iter) | 203578 | 96279 | 183754 | 38668 | 43986 | 47319 | 613584 |
re_model(60万iter) | 235390 | 100503 | 188331 | 39535 | 44174 | 48232 | 656165 |
从复现结果看, 往后训练并没有呈现明显的检出越來越多的趋势.
该波复核使用的训练数据集有差异, 需重新复核.
训练状态:
实验结果:
模型(iter_num) | test_257 | test_250 | test_295 | test_96 | test_93 | test_97 | 总共识别字符数 |
---|---|---|---|---|---|---|---|
OR | 199571 | 97042 | 183013 | 38104 | 43881 | 46583 | 608194 |
best_model(200k) | 227336 | 100888 | 185281 | 39356 | 44174 | 47643 | 644678 |
review_model(50万iter) | 223053 | 98953 | 184346 | 39292 | 44186 | 47856 | 637686 |
review_model(52万iter) | 222907 | 98678 | 184629 | 39170 | 44165 | 47750 | 637299 |
review_model(60万iter) | 223093 | 98852 | 183633 | 39095 | 44242 | 47617 | 636532 |
review_model(80万iter) | 223548 | 98752 | 184334 | 39191 | 44200 | 47598 | 637513 |
review_model(100万iter) | 224387 | 99140 | 183333 | 39348 | 44122 | 47373 | 637703 |
review_model(108万iter) | 225268 | 98681 | 183766 | 39643 | 44277 | 47336 | 638971 |
余波的结果:
该版本和我这边的代码最早的复现配置差异在于loss权重的设置, 该 版本的代码 segloss 权重为10, 之前的复现设置的segloss权重为1.
从复现结果看, 往后训练并没有呈现明显的检出越來越多的趋势. 之后的结果也没有超过bestmodel的.
进一步对比代码, 基本判断 该代码版本和我之前实验的版本一致, 而检出越來越多的训练可能只是一次偶然结果.
以下结论基于最早的人工标注的1k数据集训练.
-
模型收敛速度问题
较少的训练集需要较长的时间收敛, 主要原因是由于学习率设置过小导致, 学习率为10e-3 可以在3000个epoch左右达到收敛,说明默认的学习率10-5过小,训练12500个epoch还未达到收敛,训练速度慢与其有关 . 此外实验表明使用Xavier均匀分布进行初始化模型收敛更快。
-
模型收敛后增强效果
多个收敛后的模型检出结果对比,收敛模型生成的增强图视觉效果基本一致,与人工标注图特别像.
-
best_model对小图增强的识别效果
在1k数据集上,其增强后识别率提高了, 但在其他小图数据集上增强后识别效果下降.
-
pipline的验证结果
增强利于检出不利于识别,即在增强图上检测得到bbox,原图上切图进行识别效果最好.(在项目enocr_trtzy_final上,以及PaddleOCR2Pytorch上都测试过)
-
在训练集上出现过的一些噪声图,在测试集上表现的去噪效果很好.(增大训练集可能有很好的效果)
-
loss和检出方向不一致的问题
多次对不同训练收敛后的模型进行测试, 测得的检出效果很差, 并非total_loss越小检出越多.
-
loss和检出的关系
- 多组实验的total_loss 表现都是在0.18左右达到收敛,但是total_loss 在0.6左右检出值最优
- 相同的psnr值,检出数相差可以很大,推论:psnr和检出没什么干系。
-
每个loss组成和检出的关系
没发现什么关系,都未呈现单调性(即某个loss值越小检出越多.)
-
几个loss的影响
多组针对loss的消融实验在训练8000k iter的last_model上的测试. 在保留当前所有的loss 的时候,检出表现最好.
-
验证集上的表现和检出的关系
通过遍历所有训练得到的模型, 对每个模型生成验证集上的统计表. 取psnr值最大或l_total较小的模型进行测试, 这样筛选得到的模型,其增强图相比于原图都有提升(原图在608194, 增强后都在6200或6300左右),但是都未能超过best_model。
-
-
原始baseline越往后训练,模型的检出字符并不能越多
多台机器上的多次复现实验,最终检出差异都不大,且并没有呈现越往后train,检出越來越多的趋势.最后经过与余波的代码,数据集,配置对比然后进行的实验也没有表现出越train检出越多的结果.
1.只使用人工标注的数据
- 使用更大量的标注数据进行训练
2.合成数据.多种添加噪声的方法,如kernelGAN, BSRGAN,Real_ESRGAN. 生成HR-LR对进行训练.
- 以txt2img 生成的图为HR图添加噪声
- Real_ESRGAN降质txt2img做过了(训练集大小53940)检出在20000+, 远低于原图检出.
- 以人工标注好图为HR 图添加噪声
- Real-ESRGAN 降质(训练集大小5785), 相较于原图有一定提升,最优在622586
- BSRGAN降质(训练集大小5785),稍优于原图,最优检出为619515
3.人工标注和合成数据混合
-
BSRGAN和Real-SRGAN及数据组制作的数据集进行1:1:1进行混合作为训练集, 总17355张.issue131(grad loss 设0.1, 有超bestmodel))
-
多种比例混合issue132
-
实验三.实验(3) 人工标注图: BSRGAN降质: Real-ESRGAN降质合计28925张,比例为1:2:2, 总图27849张(grad loss 设1, 都超bestmodel,最优在80k,657933)
-
实验五 人工标注图: BSRGAN降质图:Real-ESRGAN降质图,比例为1:1:2,基数为5785张;总图合计23140(grad loss 设0.001, 有多个模型超bestmodel,最优在282k,646383)
-
实验六 人工标注图:BSRGAN降质图:Real-ESRGAN降质图,比例为1:2:1,总图合计23140(grad loss 设0.001, 有超bestmodel)
-
实验七,实验(2) 人工标注图:BSRGAN降质图:Real-ESRGAN降质图,比例为1:3:3,总图为40495张(grad loss 设0.001, 有超bestmodel)(grad loss 设1, 大量超bestmodel, 最优在40k, 663033)
-
-
加kernelGAN继续混合issue142
-
人工标注图:BSRGAN降质图:Real-ESRGAN降质图 : kernelGAN降质图,大致比例为1:1:1:1. 检出优于原图,低于bestmodel.
-
人工标注图:BSRGAN降质图:Real-ESRGAN降质图 : kernelGAN降质图,比例为1:3:3:3. 检出结果远低于原图,500000左右.
-
纯人工标注的数据训练增强效果 没有人工+降质数据训练增强效果好;目前人工标注图:BSRGAN降质图:Real-ESRGAN降质图,比例为1:3:3效果最佳