我在张量流中训练神经网络。在每个优化步骤之后,我想在更新之前保持权重。因此,如果优化步骤不好,我可以回到优化步骤之前的权重。
此刻我正在尝试执行以下操作:
使用original_session = copy.copy(session)
使用Adam Optimizer训练批次
使用session.close()关闭效果不佳的会话
继续现有会话
我遇到了这种方法的问题。该过程仅以错误代码139退出,而没有任何错误消息。
对我来说,由于性能问题,请勿将模型与检查点文件一起保存到硬盘上,这一点很重要。我只想在内存中保留网络副本。
您有一些想法如何在tensorflow中做到这一点吗?
谢谢!
答案 0 :(得分:0)
您可以像这样使用单独的图:
g1 = tf.Graph()
g2 = tf.Graph()
with g1.as_default():
# build your 1st model
sess1 = tf.Session(graph=g1)
# do some work with sess1 on g1
sess1.run(...)
with g2.as_default():
# build your 2nd model
sess2 = tf.Session(graph=g2)
# do some work with sess2 on g2
sess2.run(...)
with g1.as_default():
# do some more work with sess1 on g1
sess1.run(...)
with g2.as_default():
# do some more work with sess2 on g2
sess2.run(...)
sess1.close()
sess2.close()
reuse functionality
。