我训练了一个RNN网络,第一个时期用了7.5个小时.但随着训练过程的进行,张量流越来越慢,第二个时期使用了55个小时.我检查了代码,大多数随时间变慢的API是:
session.run([var1, var1, ...], feed_dict=feed),tensor.eval(feed_dict=feed). 例如,一个行代码是session.run[var1, var2, ...], feed_dict=feed),当程序开始时,它使用0.1秒,但随着进程运行,这行代码所用的时间变得越来越大,10小时后,这条线花费的时间达到10秒.
我已经好几次降临了.这引发了什么?我怎么能避免这个?
如果这行代码:self.shapes = [numpy.zeros(g[1].get_shape(), numy.float32) for g in self.compute_gradients] 将节点添加到张量流图中?我怀疑这可能是原因.这行代码将定期多次调用,而self不是对象tf.train.optimizer.
小智 6
在创建图表后尝试完成图表(graph.finalize()).这将阻止将操作添加到图表中.我也认为self.compute_gradients正在向图表添加操作.尝试在循环外定义操作并在循环中运行它
| 归档时间: |
|
| 查看次数: |
4711 次 |
| 最近记录: |