Tensorflow未保存所需的模型
我要求tensorflow在每个历元中每100次迭代保存一次模型,下面是我的代码。但经过900次迭代后,只保存了第500、600、700、800和900次迭代的训练模型Tensorflow未保存所需的模型,tensorflow,Tensorflow,我要求tensorflow在每个历元中每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
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
以下是培训精度:
历元:0,步长:100,训练损失:0.669,训练准确率:59.38%
历元:0,步长:200,训练损失:0.806,训练准确率:54.69%
历元:0,步长:300,训练损失:0.781,训练准确率:57.81%
历元:0,步长:400,训练损失:0.725,训练准确率:64.06%
历元:0,步长:500,训练损失:0.347,训练准确率:89.06%
历元:0,步长:600,训练损失:0.193,训练准确率:89.06%
历元:0,步长:700,训练损失:0.003,训练准确率:100.00%
历元:0,步长:800,训练损失:0.190,训练准确率:98.44%
历元:0,步长:900,训练损失:0.009,训练准确率:100.00%
我的问题是为什么tensorflow没有为第100、200、300、400次迭代保存模型?谢谢大家! 确实如此,但我猜您创建的实例的默认值为
max\u keep
值为5,因此它在创建最后5个实例时重写了它们。要保留10,请将您的保护程序创建行更改为
saver = tf.train.Saver(max_keep=10)
如果不想保存-every-one,您可能还想使用
keep\u checkpoint\u every\n\u hours
参数。确实如此,但我猜您创建的实例的默认max\u keep
值为5,因此在创建最后5个实例时,它会重写它们。要保留10,请将您的保护程序创建行更改为
saver = tf.train.Saver(max_keep=10)
如果您不想保存-every-one,您可能还需要使用
keep\u checkpoint\u every\n\u hours
参数。谢谢您的回复。我刚查过。默认情况下,它只保留5个检查点。谢谢你的回复。我刚查过。默认情况下,它只保留5个检查点。最大保存时间=5个可能的副本