CNTK - 权重更新占慢训练时间的 90%



分析 CNTK 训练 Alexnet 的变体时,结果如下:

Description................ ............Mean ..........StdDev .............Min .............Max ...........Count ...........Total
Main Thread
_Minibatch Iteration      :      4379.453 ms       401.522 ms      3984.586 ms      7079.859 ms               64     00:04:40.285
__Forward + Backward      :       467.035 ms       375.025 ms       407.861 ms      3443.404 ms               64     29890.221 ms
__Weight Update           :      3912.241 ms       214.278 ms      3570.211 ms      4104.718 ms               64     00:04:10.383
Data Reader

当同时使用 SGD 和动量 SGD 时,权重更新构成了训练时间的大部分:

learner = momentum_sgd(ot.parameters, 0.015,0.9,gaussian_noise_injection_std_dev=0.0000001)

问题是使用高斯噪声注入,这通过等待 CPU 提供所需的随机值来瓶颈 GPU。删除参数可解决此问题:

learner = momentum_sgd(ot.parameters, 0.015,0.9)

最新更新