【问题标题】:minimize(cost) operation takes a lot of time最小化(成本)操作需要很多时间
【发布时间】:2017-10-25 10:45:15
【问题描述】:

我有以下代码来计算张量流中 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 上训练网络

【问题讨论】:

  • 你的学习率和初始化权重和偏差的模式以及激活函数的类型是多少?
  • 我使用truncated_normal_initializer 表示权重,constant_initializer 表示偏差。学习率为 0.001

标签: tensorflow lstm tensorflow-gpu


【解决方案1】:

RNN 在 GPU 中较慢是很正常的。根据此处给出的答案 (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。

另外,你可以阅读百度上关于优化RNN性能的这篇文章(http://svail.github.io/rnn_perf/),给你很好的理解。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 2020-03-19
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    相关资源
    最近更新 更多