最小化(成本)操作需要花费大量时间

时间:2017-10-25 10:45:16

标签: tensorflow lstm tensorflow-gpu

我有以下一些代码来计算张量流中LSTM的成本。当我执行代码时,优化器步骤需要花费大量时间,大约需要25分钟。

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred, labels=y_class))
optimizer = tf.train.RMSPropOptimizer(learning_rate=lr).minimize(cost)

为什么会这样?这取决于我的重量,偏差,LSTM中隐藏层数的大小吗? 我在GTX 840M上培训网络

1 个答案:

答案 0 :(得分:0)

GPU中 RNN 较慢是很正常的。根据这里给出的答案(https://datascience.stackexchange.com/questions/19220/choosing-between-cpu-and-gpu-for-training-a-neural-network),有时它比CPU更差,具体取决于您的GPU型号。

RNN训练时间取决于重量参数的数量(取决于输入数量和隐藏单位)。因此,如果可能,您可以尝试减少这些数字。

此外,正如这个答案所建议的那样(How to speedup rnn training speed of tensorflow?),你可以,

  1. 使用不同的批量大小训练。
  2. 使用采样的softmax而不是常规的softmax。
  3. 此外,您可以阅读百度关于优化RNN性能的文章(http://svail.github.io/rnn_perf/),这将为您提供良好的理解。

    希望这有帮助。