Python TensorFlow:还记得以前时代的伟人吗

Python TensorFlow:还记得以前时代的伟人吗,python,machine-learning,tensorflow,neural-network,Python,Machine Learning,Tensorflow,Neural Network,我正在用TensorFlow做实验。我刚刚发布了一个关于它面临的一个问题的帖子。然而,我也有一个可能更具理论性的问题,但会带来实际后果 在训练模型时,我发现精度可能会有所不同。因此,最后一个历元可能不会显示出最佳精度。例如,在历元N上,I的精度可能为85%,而在最后一个历元上,精度为65%。我想使用N历元上的权重进行预测 我想知道是否有一种方法可以以最好的精度记住历元的权重值,以便以后使用 第一个简单的方法是: 运行N个时代 记住最好的准确性 重新开始训练,直到我们达到与第2步中存储的历元具有相

我正在用TensorFlow做实验。我刚刚发布了一个关于它面临的一个问题的帖子。然而,我也有一个可能更具理论性的问题,但会带来实际后果

在训练模型时,我发现精度可能会有所不同。因此,最后一个历元可能不会显示出最佳精度。例如,在历元N上,I的精度可能为85%,而在最后一个历元上,精度为65%。我想使用N历元上的权重进行预测

我想知道是否有一种方法可以以最好的精度记住历元的权重值,以便以后使用

第一个简单的方法是:

  • 运行N个时代
  • 记住最好的准确性
  • 重新开始训练,直到我们达到与第2步中存储的历元具有相同精度的历元
  • 使用当前重量进行预测
  • 有更好的吗?

    是的!你需要在整个培训过程中做出正确的选择。伪代码实现如下所示:

    model=my_model()
    saver=tf.train.saver()
    使用tf.Session()作为sess:
    sess.run(初始化操作)
    对于范围内的历元(NUM_历元):
    对于范围内的批次(数量批次):
    # ... 训练你的模特。。。
    如果批次%VALIDATION\u频率==0:
    #定期对验证集进行测试。
    error=sess.run(model.error,feed\u dict=valid\u dict)
    如果错误<最小错误:
    min_error=error#存储迄今为止最好的错误
    saver.save(sess,MODEL#u PATH)#保存迄今为止性能最好的网络
    
    然后,当您想根据性能最佳的迭代测试您的模型时:

    saver.restore(sess,模型路径)
    test\u error=sess.run(model.error,feed\u dict=test\u dict)
    
    查看保存和加载元图。我发现加载步骤有点棘手,这取决于您的用例