【问题标题】:Why time per step continuously decreasing with increasing in number of epoch?为什么每一步的时间随着时代数的增加而不断减少?
【发布时间】:2019-10-04 09:40:59
【问题描述】:

在训练深度学习模型时,随着 epoch 数量的增加,完成一个步骤所需的时间不断减少。在数据相同的情况下,是什么提高了效率?

为什么在第一个纪元中,它与其他纪元相比非常大?任何相同的答案或参考都将是可观的。

这是我的训练模型截图:

您可以看到时间/步在减少为 3s/步、810ms/步、722ms/步等..

【问题讨论】:

  • 你用什么来训练? tf.data 可能吗?你在哪里运行它?相同的趋势是否适用于下一个时期(或所有 20)或开始波动?
  • 欢迎来到 StackOverflow。请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确说明问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您指定的问题。

标签: tensorflow keras deep-learning loss-function


【解决方案1】:

部分答案:

由于各种初始化开销,第一个 epoch 较慢:您的整个模型初始化为选定的值或分布,模型层被实例化等。

由于各种原因,后期时代可能会加速。在我所做的工作中,最常见的是各种算法分析器正在学习模型的数据+流控制,并正在调整流以获得更好的性能。

这可能涉及输入摄取(缓存)、操作短路、切换到稀疏矩阵计算,因为内核权重“摇出”以具有大多数 oof 0.0 元素等。

但是,如果没有合适的例子来准确再现效果,也没有尝试分析执行,这些想法只是猜测。

【讨论】:

    【解决方案2】:

    这是非常具体的,不能一概而论。所用时间是一个可变组件,取决于各种外部因素以及运行过程中的内存可用性、输入大小等。

    【讨论】:

      猜你喜欢
      • 2017-01-23
      • 2021-12-13
      • 1970-01-01
      • 2019-03-02
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多