【问题标题】:Tensorflow computation time drop with increasing model sizeTensorFlow 计算时间随着模型大小的增加而下降
【发布时间】:2018-04-16 23:58:13
【问题描述】:

在运行我的实验时,我注意到使用带有 GPU 支持的 tensorflow 的计算时间出现了奇怪的下降。每次迭代(1000 个学习步骤),模型大小会增加 200 个隐藏神经元(带有一个隐藏层的简单全连接 nn)。现在我测量了每次迭代所花费的时间,并注意到不同版本的算法在同一地点出现了这种下降。所以这与机器上的一些外部事件无关,因为实验是连续运行的。达到一定的模型大小后,张量流有什么可以利用的吗? Plotted Time w.r.t iterations

【问题讨论】:

  • 您能否分享更多实现细节,例如您使用的是哪种优化器以及更多关于架构的信息?例如,架构是 series 密集层还是 parallel 集,或者是否有缓动函数来平滑添加?
  • 当然,我正在使用来自 tensorflow 的内置 Adam Optimizer。该模型基本上由两个密集层组成,每次迭代都会通过简单地连接一个新的权重矩阵来增加它们的大小。因此模型在整个过程中具有相同数量的层。感谢您的帮助!
  • 图中不同颜色代表什么意思?
  • 这些只是算法的不同修改,与模型架构本身无关。
  • 如果您使用的是稀疏矩阵并且您使用的是 L1 正则化器,那么也许在迭代 32 左右,您会跨越一个阈值,您的 L1 最终使您的稀疏矩阵足够稀疏矩阵运算优化。这就是我得到的。根据文档tensorflow.org/api_docs/python/tf/train/AdamOptimizer Adam 使用稀疏矩阵,所以很可能就是这样。使用 Momentum Gradient 或 Vanilla Gradient 重试。

标签: tensorflow


【解决方案1】:

如果您使用的是稀疏矩阵并且您使用的是 L1 正则化器,那么可能在迭代 32 左右您会跨越一个阈值,您的 L1 最终使您的稀疏矩阵足够稀疏以进行矩阵运算优化。

根据文档 tensorflow.org/api_docs/python/tf/train/AdamOptimizer 亚当使用稀疏矩阵,所以很可能就是这样。使用 Momentum Gradient 或 Vanilla Gradient 重试。

【讨论】:

    猜你喜欢
    • 2020-01-06
    • 2021-06-27
    • 2019-06-07
    • 1970-01-01
    • 2018-09-12
    • 2019-04-14
    • 2015-06-01
    • 2020-09-02
    • 1970-01-01
    相关资源
    最近更新 更多