我是靠谱客的博主 爱笑小蘑菇,最近开发中收集的这篇文章主要介绍深度学习网络模型训练---收敛速度慢,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

问题

网络训练收敛速度慢

主要原因

模型的问题,训练迭代时含大量参数

最佳解决办法

优化算法模型

有技巧的解决办法

网络模型的优化,通常是比较难的。但可以通过其他方式来加速收敛速度

  1. 增大学习率
  2. 减小迭代次数
  3. **在迭代次数不变的情况下,去调节batch_size和epoch间比例
  4. **微调SGD参数,动量、学习率
  5. 及时释放不必要的内存开销,中间变量及时释放
  6. 简化程序代码,例如 改掉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

最后

以上就是爱笑小蘑菇为你收集整理的深度学习网络模型训练---收敛速度慢的全部内容,希望文章能够帮你解决深度学习网络模型训练---收敛速度慢所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部