理论上,session启动后,每个epoch训练时间应该是差不多,而且不会因为迭代周期变长,epoch时间变慢。原因是session里定义了tf.op导致的,每一次迭代都会在graph里增加新的节点,导致memory leak,程序越来越慢,最后强行退出。解决方法,可以在session里定义graph.finalize()锁定graph。比如:
sess = tf.Session()
for epoch in range(EPOCHS):
...
sess.graph.finalize() #增加这行