【问题标题】:Tensorflow did not save the required modelsTensorFlow 没有保存所需的模型
【发布时间】:2018-05-20 22:02:41
【问题描述】:

我要求 tensorflow 在每个 epoch 中每 100 次迭代保存一次模型,以下是我的代码。但经过 900 次迭代后,只保存了第 500、600、700、800、900 次迭代的训练模型。

with tf.Session(config = tf.ConfigProto(log_device_placement = True)) as sess:

    sess.run(init_op)

    for i in range(args.num_epochs):
        start_time = time.time()
        k = 0
        acc_train = 0
        # initialize the iterator to train_dataset
        sess.run(train_init_op)
        while True:
            try:
                accu, l, _ = sess.run([accuracy, loss, optimizer], feed_dict = {training: True})
                k += 1
                acc_train += accu
                if k % 100 == 0:
                    print('Epoch: {}, step: {}, training loss: {:.3f}, training accuracy: {:.2f}%'.format(i, k, l, accu * 100))
                    saver.save(sess, args.saved_model_path, global_step = (i+1) * k)
            except tf.errors.OutOfRangeError:
                break

以下是训练精度:

Epoch:0,步长:100,训练损失:0.669,训练准确率:59.38%

Epoch:0,步长:200,训练损失:0.806,训练准确率:54.69%

Epoch:0,步长:300,训练损失:0.781,训练准确率:57.81%

Epoch:0,步长:400,训练损失:0.725,训练准确率:64.06%

Epoch:0,步长:500,训练损失:0.347,训练准确率:89.06%

Epoch:0,步长:600,训练损失:0.193,训练准确率:89.06%

Epoch:0,步长:700,训练损失:0.003,训练准确率:100.00%

Epoch:0,步长:800,训练损失:0.190,训练准确率:98.44%

Epoch:0,步长:900,训练损失:0.009,训练准确率:100.00%

我的问题是为什么 tensorflow 没有为第 100、200、300、400 次迭代保存模型?谢谢!

【问题讨论】:

标签: tensorflow


【解决方案1】:

确实如此,但我猜您创建的 Saver 实例的默认 max_keep 值为 5,因此在创建最后 5 个时它会覆盖它们。要保留 10,请将您的保护程序创建行更改为

saver = tf.train.Saver(max_keep=10)

如果您不想保存每个人,您可能还想使用keep_checkpoint_every_n_hours 参数。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-27
  • 2018-02-26
  • 2018-02-01
  • 2018-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多