gpt4 book ai didi

python - TensorFlow:记住以前时代的重量

转载 作者:行者123 更新时间:2023-11-28 17:16:14 25 4
gpt4 key购买 nike

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

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

我想知道是否有一种方法可以最准确地记住 epoch 的权重值以备后用?

第一个简单的方法是:

  1. 运行 N 个 epoch
  2. 记住最好的准确性
  3. 重新开始训练,直到我们到达一个与第 2 步中存储的精度相同的时期。
  4. 使用当前权重进行预测

还有更好的吗?

最佳答案

是的!你需要做一个 saver and save your session periodically通过你的训练过程。伪代码实现如下:

model = my_model()
saver = tf.train.Saver()
with tf.Session() as sess:
sess.run(init_op)
for epoch in range(NUM_EPOCHS):
for batch in range(NUM_BATCHES):

# ... train your model ...

if batch % VALIDATION_FREQUENCY == 0:
# Periodically test against a validation set.
error = sess.run(model.error, feed_dict=valid_dict)
if error < min_error:
min_error = error # store your best error so far
saver.save(sess, MODEL_PATH) # save the best-performing network so far

然后,当您想针对性能最佳的迭代测试您的模型时:

saver.restore(sess, MODEL_PATH)
test_error = sess.run(model.error, feed_dict=test_dict)

查看 this tutorial关于保存和加载元图也是如此。根据您的用例,我发现加载步骤有点棘手。

关于python - TensorFlow:记住以前时代的重量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43923012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com