今天是个好日子,重阳节,也是妹子的生日!
训练cifar10,自从引进了bn层类!均值和方差就像自己的炎症水平!
今天吃了一天稀饭,其实是最好的奖励!它可以把炎症水平控制的相当好!你看87分也手到擒来!
虽然还不能爆吃家里的桔子,像小时候一样随心所欲!但在自己本草---增液汤和稀饭的控制下!吃香喝辣还是可以的!
生活变好了,老一辈人却吃不动了!不是这病就是那病!这不能吃那不能吃!这也是这个时代的特征!
有时候觉得,研究人工智能和研究中医没什么两样!就像炎症水平和cifar10的训练!
从0开始,到达87分水平!和研究自己的亚健康以及维护父母的健康!很有意思!
得分只能代表你进步了!而有意思的是:有点用,有点发现,做点有意义的事情(解决问题,办法总比困难多)!
日积月累,就金石为开了!
这种金石为开,不是得到了金子,而是你突然领悟!迈进了某扇大门!大门后,还有很远的路要走!虽然初见金石很愚蠢!但那份热情很难溶解才是人生最重要的!
扯远了!回到cifar10!
上次cifar10训练是越过了86.5,摸到86.97!但就是过不去!
计划落空(以为今天可以突破87分,训练cifar10)-CSDN博客
训练架构保持不变:(标红是摸到86.97的新增)
layers.emplace_back(std::make_shared<Conv2D>(cudnn, batch, 5, 32, 32, 32, 3, 1, 1));
layers.emplace_back(std::make_shared<residualExt2>(cudnn, batch, 32, 32, 32));
layers.emplace_back(std::make_shared<ReLU>(cudnn, batch, 32, 32, 32));
layers.emplace_back(std::make_shared<Conv2D>(cudnn, batch, 32, 64, 32, 32, 3, 1, 1));
layers.emplace_back(std::make_shared<BN>(cudnn, batch, 64, 32, 32));
layers.emplace_back(std::make_shared<ReLU>(cudnn, batch, 64, 32, 32));
layers.emplace_back(std::make_shared<residualExt2>(cudnn, batch, 64, 32, 32));
layers.emplace_back(std::make_shared<ReLU>(cudnn, batch, 64, 32, 32));
layers.emplace_back(std::make_shared<Conv2D>(cudnn, batch, 64, 128, 32, 32, 3, 1, 1));
layers.emplace_back(std::make_shared<residualExt2>(cudnn, batch, 128, 32, 32));
layers.emplace_back(std::make_shared<ReLU>(cudnn, batch, 128, 32, 32));
layers.emplace_back(std::make_shared<residualExt2>(cudnn, batch, 128, 32, 32));
layers.emplace_back(std::make_shared<ReLU>(cudnn, batch, 128, 32, 32));
layers.emplace_back(std::make_shared<MaxPool2D>(cudnn, batch, 128, 32, 32, 2, 2, 0, 2));
layers.emplace_back(std::make_shared<Conv2D>(cudnn, batch, 128, 256, 16,16, 3, 1, 1));
layers.emplace_back(std::make_shared<residualExt2>(cudnn, batch, 256, 16, 16));
layers.emplace_back(std::make_shared<ReLU>(cudnn, batch, 256, 16, 16));
layers.emplace_back(std::make_shared<MaxPool2D>(cudnn, batch, 256, 16, 16, 2, 2, 0, 2));
layers.emplace_back(std::make_shared<Conv2D>(cudnn, batch, 256, 512, 8, 8, 3, 1, 1));
layers.emplace_back(std::make_shared<residualExt2>(cudnn, batch, 512, 8, 8));
layers.emplace_back(std::make_shared<ReLU>(cudnn, batch, 512, 8, 8));
layers.emplace_back(std::make_shared<AvgPool2D>(cudnn, batch, 512, 8, 8, 2, 2, 0, 2));
layers.emplace_back(std::make_shared<Dropout>(cudnn, batch, 512, 4,4));
layers.emplace_back(std::make_shared<Linear>(cublas, batch, 512 * 16, 384));
layers.emplace_back(std::make_shared<BN>(cudnn, batch, 384, 1, 1));
layers.emplace_back(std::make_shared<ReLU>(cudnn, batch, 384, 1, 1));
layers.emplace_back(std::make_shared<Dropout>(cudnn, batch, 384, 1, 1));
layers.emplace_back(std::make_shared<Linear>(cublas, batch, 384, 10));
改变的是学习率!固化了一个概念(被束缚住了):增加了动量后,学习率不再使用0.001,而用0.0006代替!
其实不然!今天突破87,就是又回到0.001的学习率,在标签平滑加持下,均值方差表现也很好!
其实今天还有一个大胆的想法:就是训练过程中,我如何测量梯度,并根据梯度而调整学习率!
一直以来,梯度和学习率以盲人下山来比拟!实际也是这个情况!
那么下山的时候,是不是可以边走边看!该大步就大步,该小步就小步!而不是什么cos余弦呀!也不是自己这种固化学习率的军队正步走的方法!
训练情况如下:(战神3070显卡8g,17轮开始起飞!每轮40秒!30轮就见到最好成绩!)
轮次:0
learn rate:0.001
时间: 36447.503906 ms
train Classification result: 10.00% ok (used 49984 images)
时间: 2997.252930 ms
Test Classification result: 10.00% ok (used 9984 images)
轮次:1
learn rate:0.001
时间: 39322.203125 ms
train Classification result: 9.69% ok (used 49984 images)
时间: 2965.709961 ms
Test Classification result: 9.99% ok (used 9984 images)
轮次:2
learn rate:0.001
时间: 39519.769531 ms
train Classification result: 9.83% ok (used 49984 images)
时间: 3011.364990 ms
Test Classification result: 9.99% ok (used 9984 images)
轮次:3
learn rate:0.001
时间: 39503.171875 ms
train Classification result: 9.91% ok (used 49984 images)
时间: 2995.260986 ms
Test Classification result: 10.00% ok (used 9984 images)
轮次:4
learn rate:0.001
时间: 39655.609375 ms
train Classification result: 9.98% ok (used 49984 images)
时间: 2963.865967 ms
Test Classification result: 10.00% ok (used 9984 images)
轮次:5
learn rate:0.001
时间: 39684.937500 ms
train Classification result: 9.73% ok (used 49984 images)
时间: 3012.450928 ms
Test Classification result: 10.00% ok (used 9984 images)
轮次:6
learn rate:0.001
时间: 39763.367188 ms
train Classification result: 10.06% ok (used 49984 images)
时间: 2982.949951 ms
Test Classification result: 10.00% ok (used 9984 images)
轮次:7
learn rate:0.001
时间: 39700.359375 ms
train Classification result: 9.93% ok (used 49984 images)
时间: 2965.875977 ms
Test Classification result: 10.00% ok (used 9984 images)
轮次:8
learn rate:0.001
时间: 39910.433594 ms
train Classification result: 10.04% ok (used 49984 images)
时间: 2959.720947 ms
Test Classification result: 10.00% ok (used 9984 images)
轮次:9
learn rate:0.001
时间: 39826.687500 ms
train Classification result: 9.93% ok (used 49984 images)
时间: 2970.152100 ms
Test Classification result: 9.98% ok (used 9984 images)
轮次:10
learn rate:0.001
时间: 39757.218750 ms
train Classification result: 10.06% ok (used 49984 images)
时间: 2996.028076 ms
Test Classification result: 10.01% ok (used 9984 images)
轮次:11
learn rate:0.001
时间: 39821.695312 ms
train Classification result: 10.07% ok (used 49984 images)
时间: 2968.591064 ms
Test Classification result: 9.99% ok (used 9984 images)
轮次:12
learn rate:0.001
时间: 39873.984375 ms
train Classification result: 9.83% ok (used 49984 images)
时间: 2994.991943 ms
Test Classification result: 10.01% ok (used 9984 images)
轮次:13
learn rate:0.001
时间: 39900.871094 ms
train Classification result: 9.80% ok (used 49984 images)
时间: 3035.878906 ms
Test Classification result: 10.02% ok (used 9984 images)
轮次:14
learn rate:0.001
时间: 39880.074219 ms
train Classification result: 9.73% ok (used 49984 images)
时间: 2990.248047 ms
Test Classification result: 10.00% ok (used 9984 images)
轮次:15
learn rate:0.001
时间: 40013.734375 ms
train Classification result: 9.89% ok (used 49984 images)
时间: 3036.279053 ms
Test Classification result: 9.99% ok (used 9984 images)
轮次:16
learn rate:0.001
时间: 39932.664062 ms
train Classification result: 9.89% ok (used 49984 images)
时间: 2997.216064 ms
Test Classification result: 10.02% ok (used 9984 images)
轮次:17
learn rate:0.001
时间: 39897.359375 ms
train Classification result: 13.85% ok (used 49984 images)
时间: 3010.770996 ms
Test Classification result: 10.01% ok (used 9984 images)
轮次:18
learn rate:0.001
时间: 39905.199219 ms
train Classification result: 30.50% ok (used 49984 images)
时间: 3012.548096 ms
Test Classification result: 9.99% ok (used 9984 images)
轮次:19
learn rate:0.001
时间: 40065.675781 ms
train Classification result: 54.69% ok (used 49984 images)
时间: 3023.435059 ms
Test Classification result: 10.00% ok (used 9984 images)
轮次:20
learn rate:0.001
时间: 40030.808594 ms
train Classification result: 66.81% ok (used 49984 images)
时间: 3026.618896 ms
Test Classification result: 10.01% ok (used 9984 images)
轮次:21
learn rate:0.001
时间: 39992.136719 ms
train Classification result: 73.07% ok (used 49984 images)
时间: 3077.064941 ms
Test Classification result: 10.01% ok (used 9984 images)
轮次:22
learn rate:0.001
时间: 40017.898438 ms
train Classification result: 77.65% ok (used 49984 images)
时间: 3070.283936 ms
Test Classification result: 9.99% ok (used 9984 images)
轮次:23
learn rate:0.001
时间: 39930.359375 ms
train Classification result: 80.91% ok (used 49984 images)
时间: 3035.000000 ms
Test Classification result: 10.02% ok (used 9984 images)
轮次:24
learn rate:0.001
rb均值: 1.9149223566,rb方差:5.033261775970
rb均值: -1.3561934233,rb方差:6.028037548065
rb均值: 1.3299045563,rb方差:5.304408073425
rb均值: -0.6633890867,rb方差:5.504553318024
rb均值: 2.1603300571,rb方差:5.300384998322
rb均值: 1.1565886736,rb方差:5.039112567902
时间: 39954.878906 ms
train Classification result: 83.58% ok (used 49984 images)
时间: 3022.920898 ms
Test Classification result: 76.43% ok (used 9984 images)
轮次:25
learn rate:0.001
rb均值: 2.4611129761,rb方差:7.534705638885
rb均值: -1.5263407230,rb方差:6.694259643555
rb均值: 1.9157645702,rb方差:6.233901977539
rb均值: -0.9254013300,rb方差:7.611061573029
rb均值: 2.3301167488,rb方差:7.407562255859
时间: 40036.015625 ms
train Classification result: 85.68% ok (used 49984 images)
时间: 3033.436035 ms
Test Classification result: 78.28% ok (used 9984 images)
轮次:26
learn rate:0.001
rb均值: 2.8513188362,rb方差:9.884593009949
rb均值: -1.7313048840,rb方差:9.083971977234
rb均值: 2.1404109001,rb方差:8.445034027100
rb均值: -1.2183930874,rb方差:9.509625434875
rb均值: -1.1783189774,rb方差:5.639903545380
rb均值: 2.3734884262,rb方差:10.120932579041
rb均值: -1.0795305967,rb方差:5.292316913605
rb均值: 1.4279394150,rb方差:6.170767307281
时间: 40056.539062 ms
train Classification result: 87.79% ok (used 49984 images)
时间: 3085.272949 ms
Test Classification result: 10.01% ok (used 9984 images)
轮次:27
learn rate:0.001
rb均值: 3.2972726822,rb方差:12.505812644958
rb均值: -1.7722152472,rb方差:9.542632102966
rb均值: 2.6289858818,rb方差:12.249313354492
rb均值: -1.5486562252,rb方差:11.599844932556
rb均值: -1.3026698828,rb方差:6.739412307739
rb均值: 2.7013981342,rb方差:14.092802047729
rb均值: -1.1468740702,rb方差:6.390090942383
rb均值: 1.8709686995,rb方差:7.630422592163
rb均值: -1.1082611084,rb方差:5.517454624176
时间: 39931.292969 ms
train Classification result: 89.56% ok (used 49984 images)
时间: 3052.461914 ms
Test Classification result: 9.99% ok (used 9984 images)
轮次:28
learn rate:0.0001
rb均值: 3.4387867451,rb方差:13.933111190796
rb均值: -1.8417197466,rb方差:10.618833541870
rb均值: 2.6618514061,rb方差:12.704145431519
rb均值: -1.6320669651,rb方差:12.183236122131
rb均值: -1.3718317747,rb方差:6.980798721313
rb均值: 2.8730702400,rb方差:15.387064933777
rb均值: -1.1710481644,rb方差:6.989798545837
rb均值: 2.0349464417,rb方差:7.865902423859
rb均值: -1.1388322115,rb方差:5.894830703735
时间: 40047.296875 ms
train Classification result: 93.54% ok (used 49984 images)
时间: 3024.955078 ms
Test Classification result: 86.45% ok (used 9984 images)
轮次:29
learn rate:0.0001
rb均值: 3.4256231785,rb方差:13.745270729065
rb均值: -1.8627237082,rb方差:10.498931884766
rb均值: 2.6799733639,rb方差:12.213313102722
rb均值: -1.7018209696,rb方差:11.810649871826
rb均值: -1.3820400238,rb方差:6.747069835663
rb均值: 2.8791222572,rb方差:14.989130973816
rb均值: -1.2196347713,rb方差:7.008196353912
rb均值: 2.0671632290,rb方差:7.917681694031
rb均值: -1.1426309347,rb方差:5.950524330139
时间: 40007.496094 ms
train Classification result: 95.10% ok (used 49984 images)
时间: 3054.498047 ms
Test Classification result: 86.67% ok (used 9984 images)
轮次:30
learn rate:1e-05
rb均值: 3.4389760494,rb方差:13.688804626465
rb均值: -1.9091309309,rb方差:10.627991676331
rb均值: 2.7014520168,rb方差:12.312853813171
rb均值: -1.7526875734,rb方差:11.692285537720
rb均值: -1.3802312613,rb方差:6.677406787872
rb均值: 2.9045193195,rb方差:15.039876937866
rb均值: -1.2505999804,rb方差:7.133963584900
rb均值: 2.0639233589,rb方差:7.984604835510
rb均值: -1.1745035648,rb方差:5.877790927887
时间: 40041.332031 ms
train Classification result: 96.11% ok (used 49984 images)
时间: 3052.292969 ms
Test Classification result: 87.14% ok (used 9984 images)
轮次:31
learn rate:1e-05
rb均值: 3.4467761517,rb方差:13.757027626038
rb均值: -1.9273608923,rb方差:10.759774208069
rb均值: 2.7109084129,rb方差:12.326829910278
rb均值: -1.7334213257,rb方差:11.864251136780
rb均值: -1.3992475271,rb方差:6.696102142334
rb均值: 2.8973941803,rb方差:15.122732162476
rb均值: -1.2439786196,rb方差:7.142957210541
rb均值: 2.0563895702,rb方差:7.871241569519
rb均值: -1.1696541309,rb方差:5.958726882935
时间: 39934.722656 ms
train Classification result: 96.36% ok (used 49984 images)
时间: 3033.363037 ms
Test Classification result: 86.95% ok (used 9984 images)
轮次:32
learn rate:1e-06
rb均值: 3.4489614964,rb方差:13.761837005615
rb均值: -1.9160084724,rb方差:10.664150238037
rb均值: 2.7035217285,rb方差:12.142875671387
rb均值: -1.7389460802,rb方差:11.731540679932
rb均值: -1.3951699734,rb方差:6.662581920624
rb均值: 2.9066228867,rb方差:14.955391883850
rb均值: -1.2409926653,rb方差:7.128028869629
rb均值: 2.0664086342,rb方差:7.924966812134
rb均值: -1.1617511511,rb方差:5.944725513458
时间: 39886.574219 ms
train Classification result: 96.33% ok (used 49984 images)
时间: 3031.548096 ms
Test Classification result: 86.98% ok (used 9984 images)
轮次:33
learn rate:1e-06
rb均值: 3.4500176907,rb方差:13.762453079224
rb均值: -1.9044157267,rb方差:10.611716270447
rb均值: 2.7190537453,rb方差:12.379726409912
rb均值: -1.7513258457,rb方差:11.784087181091
rb均值: -1.3975774050,rb方差:6.714685916901
rb均值: 2.9113528728,rb方差:15.196555137634
rb均值: -1.2481554747,rb方差:7.082885265350
rb均值: 2.0648455620,rb方差:7.952729225159
rb均值: -1.1656916142,rb方差:5.875449657440
时间: 39943.128906 ms
train Classification result: 96.32% ok (used 49984 images)
时间: 3072.040039 ms
Test Classification result:87.03% ok (used 9984 images)
轮次:34
learn rate:1e-07
rb均值: 3.4498884678,rb方差:13.764389991760
rb均值: -1.9072422981,rb方差:10.687661170959
rb均值: 2.7131588459,rb方差:12.357494354248
rb均值: -1.7496953011,rb方差:11.941749572754
rb均值: -1.3980531693,rb方差:6.728104591370
rb均值: 2.9165480137,rb方差:15.297974586487
rb均值: -1.2468137741,rb方差:7.011734962463
rb均值: 2.0764503479,rb方差:8.003220558167
rb均值: -1.1670255661,rb方差:5.930608272552
时间: 39985.953125 ms
train Classification result: 96.36% ok (used 49984 images)
时间: 3057.958984 ms
Test Classification result: 87.06% ok (used 9984 images)
轮次:35
learn rate:1e-07
rb均值: 3.4500224590,rb方差:13.765678405762
rb均值: -1.9127366543,rb方差:10.727529525757
rb均值: 2.7046515942,rb方差:12.201869010925
rb均值: -1.7431532145,rb方差:11.822277069092
rb均值: -1.3936837912,rb方差:6.740434646606
rb均值: 2.9168980122,rb方差:15.199685096741
rb均值: -1.2463408709,rb方差:7.079766750336
rb均值: 2.0661885738,rb方差:8.002958297729
rb均值: -1.1645082235,rb方差:5.848778724670
时间: 40066.742188 ms
train Classification result: 96.44% ok (used 49984 images)
时间: 3064.773926 ms
Test Classification result:87.06% ok (used 9984 images)
请按任意键继续. . .
今天还遇到奇葩的是:
昨天发现训练cifar100,1*1降维筛选通道c/2,3*3卷积升维到c,要49秒!
本来的规律是:
残差两个3*3卷积,训练一轮57秒!
一个1*1卷积通道c,一个3*3 卷积通道c,49秒一轮!
1*1降维筛选通道c/2,3*3卷积升维到c,39秒一轮!
然后回到cifar10上面这个架构:
昨天是:49秒一轮!我真没注意!因为残差叠加,没放心上!
没找到原因!
今天用最粗暴的方法:电脑重新启动!搞定!
cifar100回到39秒一轮!
cifar10竟然40秒也搞定了!
今天午觉害怕睡不好!喝了两口白酒!还不错!很放松!(有点担心自己的强迫症找回来了!工程上养成的解决问题的习惯!)
训练让电脑自己训练!睡起来!
好成绩接踵而至!