【问题标题】:Keep weights of tensorflow model after optimization step优化步骤后保持张量流模型的权重
【发布时间】:2018-09-16 08:20:13
【问题描述】:

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

目前我正在尝试执行以下操作:

  1. 使用 original_session = copy.copy(session) 复制 tensorflow 会话

  2. 使用 Adam Optimizer 训练批次

  3. 使用 session.close() 关闭表现不佳的会话

  4. 继续现有会话

我在使用这种方法时遇到了问题。该进程刚刚退出,错误代码为 139,没有任何错误消息。

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

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

谢谢!

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

    您可以像这样使用单独的图表:

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

    【讨论】:

    • 谢谢。但这并不能真正回答问题。因为我不想在不同的图表之间共享变量。我想在我的网络上进行一个优化步骤,并在优化步骤之前保持权重。所以理论上,我可以回到优化步骤之前的权重。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 2017-01-29
    • 2016-07-24
    • 1970-01-01
    • 2020-02-28
    相关资源
    最近更新 更多