我有以下一些代码来计算张量流中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上培训网络
答案 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?),你可以,
此外,您可以阅读百度关于优化RNN性能的文章(http://svail.github.io/rnn_perf/),这将为您提供良好的理解。
希望这有帮助。