连续训练多个连续模型会减慢

时间:2017-03-13 14:16:17

标签: python-3.x tensorflow keras

我正在使用Keras / TensorFlow(GPU)来创建时间序列预测模型。我有100倍的时间序列,并希望为每个时间序列训练一个网络。

连续运行几个时间序列很好,但是一旦我运行100x或1000x,那么每个模型的训练时间似乎缓慢增加(但肯定)。这有一个简单的原因吗?

下面是重现问题的代码(请注意,运行可能需要一段时间)。

https://gist.github.com/mannsi/c5666c4b786c35c3443beea6d13a32fe

在我的机器上,第一次迭代需要10秒,迭代#250需要16秒,迭代#500需要25秒。

我是神经网络和Keras / TF的新手,所以这可能是完全正常的但我在进行背包时间计算时没有考虑到这一点。

系统信息:

  • python 3.5
  • keras(1.2.2)
  • tensorflow-GPU(1.0.0)
编辑:我在TensorFlow CPU后端测试了相同的代码,我看到了完全相同的行为。

3 个答案:

答案 0 :(得分:1)

在每次迭代中,计算图中可能存在一些开销。使用Keras后端函数K.clear_session()重置每次运行之间的基础Tensorflow会话。

答案 1 :(得分:0)

可能是你的gpu升温了,因此降低功率以降低温度? 如果在完成多次迭代后重新启动它,第一次迭代需要多长时间?

答案 2 :(得分:0)

由于模型参数没有更改,因此您只需编译一次模型即可。然后,您可以构建一个循环来拟合它。 您实例化一个模型并在每个循环中对其进行编译,这就是内存消耗持续增长的原因。

相关问题