优化步骤后保持张量流模型的权重

时间:2018-09-16 08:20:14

标签: python tensorflow

我在张量流中训练神经网络。在每个优化步骤之后,我想在更新之前保持权重。因此,如果优化步骤不好,我可以回到优化步骤之前的权重。

此刻我正在尝试执行以下操作:

  1. 使用original_session = copy.copy(session)

  2. 复制张量流会话
  3. 使用Adam Optimizer训练批次

  4. 使用session.close()关闭效果不佳的会话

  5. 继续现有会话

我遇到了这种方法的问题。该过程仅以错误代码139退出,而没有任何错误消息。

对我来说,由于性能问题,请勿将模型与检查点文件一起保存到硬盘上,这一点很重要。我只想在内存中保留网络副本。

您有一些想法如何在tensorflow中做到这一点吗?

谢谢!

1 个答案:

答案 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()