概述
问题
网络训练收敛速度慢
主要原因
模型的问题,训练迭代时含大量参数
最佳解决办法
优化算法模型
有技巧的解决办法
网络模型的优化,通常是比较难的。但可以通过其他方式来加速收敛速度
- 增大学习率
- 减小迭代次数
- **在迭代次数不变的情况下,去调节batch_size和epoch间比例
- **微调SGD参数,动量、学习率
- 及时释放不必要的内存开销,中间变量及时释放
- 简化程序代码,例如 改掉for循环,用switch等简单程序替代循环
例如:
同等设备同等情况下
在epoch=20000 batch_size=64 学习率Ir=0.1 时
迭代次数为20000*(训练images/64) 一次epoch需要 6min
程序总耗时 20000 * 6min=83.4 days
保持迭代次数和学习率不变, batch_size=5 时
则epoch=1563(迭代次数为1563*训练images/5) 一次epoch需要 13min
程序总耗时 1563 * 13min = 14.1 days
当epoch=1563 batch_size=5 学习率Ir=0.15 时
一次epoch需要 7 min
程序总耗时 1563 * 7min=7.6 days
当epoch=1563 batch_size=5 学习率Ir=0.15 边运行边释放中间变量数组内存 时
一次epoch需要 6 min 30s
程序总耗时 1563 * 6min30s=7 days
当epoch=1400 batch_size=5 学习率Ir=0.15 边运行边释放数组内存 时
程序总耗时 1400 * 6min30s=6.3 days
当epoch=1400 batch_size=5 学习率Ir=0.15 边运行边释放中间变量数组内存 简化程序 时
一次epoch需要 6 min 10s
程序总耗时 1400 * 6min10s=6 days
最后
以上就是爱笑小蘑菇为你收集整理的深度学习网络模型训练---收敛速度慢的全部内容,希望文章能够帮你解决深度学习网络模型训练---收敛速度慢所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复