昨天搞定cudnn卷积层bias动量,训练cifar10,稳定在78分

而权重的动量使用,失败了!

今天又仔细研究,终于突破cudnn卷积层权重动量的正确使用!摸到79分!

只有一句话的增加:在卷积层的update函数中:

原有的:

  axpy_kernel << <(w_size + 255) / 256, 256 >> > (w_size, 0.0005f * _batch, _weight, 0, 1, _grad_weight, 0, 1);        
        sgd_update << <(w_size + 255) / 256, 256 >> > (_weight, _grad_weight, lr, w_size);

新增一句:

scal_cpu << <(w_size + 255) / 256, 256 >> > (w_size, 0.98, _grad_weight, 1);

跟上昨天的节奏!

要解释的是:

上面的0.0005f叫做decay!有效果!没有研究!从yolov3照抄过来很久了,一直在用!没什么不适!

0.98就是动量系数,作用在_grad_weight上!

奇葩的是,训练一轮,上了70秒!昨天已经只要13.6秒!但是,成绩上了79分

昨天bn层尝试bias用动量,也只加了一句话,就像今天,也是慢到怀疑人生!

train Classification result: 93.62% ok (used 49984 images)
时间: 1110.706055 ms
Test Classification result: 78.54% ok (used 9984 images)
learn rate:0.0001
轮次:19
rb均值: 0.3818337023,rb方差:8.384060859680
rb均值: 1.7559719086,rb方差:5.889374732971
rb均值: -0.7261731625,rb方差:5.962773799896
rb均值: 1.4178050756,rb方差:5.932257175446
rb均值: -0.0528148264,rb方差:12.704451560974
rb均值: 0.0378729030,rb方差:11.297621726990
rb均值: -1.5853482485,rb方差:7.380317687988
rb均值: 0.7895524502,rb方差:13.818809509277
rb均值: -1.9420509338,rb方差:31.510337829590
时间: 70496.273438 ms
train Classification result: 94.08% ok (used 49984 images)
时间: 1134.477051 ms
Test Classification result: 78.41% ok (used 9984 images)
learn rate:0.0001
轮次:20
rb均值: 0.3937941790,rb方差:8.424676895142
rb均值: 1.7590270042,rb方差:5.920159339905
rb均值: -0.7203072906,rb方差:5.995388031006
rb均值: 1.4033983946,rb方差:5.965545654297
rb均值: -0.0625253320,rb方差:12.773555755615
rb均值: 0.0383710414,rb方差:11.307371139526
rb均值: -1.5975751877,rb方差:7.434343338013
rb均值: 0.7704466581,rb方差:13.827901840210
rb均值: -1.9591114521,rb方差:31.622909545898
时间: 70635.609375 ms
train Classification result: 94.64% ok (used 49984 images)
时间: 1139.574951 ms
Test Classification result: 78.97% ok (used 9984 images)
learn rate:2e-05
轮次:21
rb均值: 0.3985765874,rb方差:8.452195167542
rb均值: 1.7553746700,rb方差:5.940604209900
rb均值: -0.7149139047,rb方差:6.010279178619
rb均值: 1.3974260092,rb方差:5.978181362152
rb均值: -0.0573744811,rb方差:12.803818702698
rb均值: 0.0434530787,rb方差:11.342432975769
rb均值: -1.6100584269,rb方差:7.454944610596
rb均值: 0.7857024074,rb方差:13.850458145142
rb均值: -1.9622178078,rb方差:31.661771774292
时间: 71226.382813 ms
train Classification result: 94.91% ok (used 49984 images)
时间: 1129.281006 ms
Test Classification result: 78.92% ok (used 9984 images)
learn rate:2e-05
轮次:22
rb均值: 0.4022263288,rb方差:8.483295440674
rb均值: 1.7567330599,rb方差:5.955846786499
rb均值: -0.7126624584,rb方差:6.024781227112
rb均值: 1.3995478153,rb方差:5.992458343506
rb均值: -0.0475667939,rb方差:12.835847854614
rb均值: 0.0425645411,rb方差:11.378325462341
rb均值: -1.6188492775,rb方差:7.465966224670
rb均值: 0.7832546234,rb方差:13.899551391602
rb均值: -1.9627203941,rb方差:31.723987579346
时间: 70688.156250 ms
train Classification result: 95.00% ok (used 49984 images)
时间: 1129.557983 ms
Test Classification result: 79.00% ok (used 9984 images)
learn rate:2e-05
轮次:23
请按任意键继续. . .

这应该算摸到pytorch的尾灯了吧!

真是,每一分都不容易!

yolo v3源码真是一部好书!致敬作者!致敬darknet,在黑夜中,我一路摸索过来了!

向cudnn致敬!也要向自己致敬!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐