在我的一个Tensorflow程序中,我使用tf.train.MonitoredTrainingSession(checkpoint_dir='./logdir')
来训练网络。训练期间,我需要不时检查验证集的准确性。但是,我观察到,如果未调用opt.minimize或opt.apply_gradients(用于检查验证集的准确性),则会产生以下警告:
警告:tensorflow:似乎全局步长(tf.train.get_global_step)尚未增加。当前值(可能是稳定值):3240与先前值:3240。您可以通过将tf.train.get_global_step()传递给Optimizer.apply_gradients或Optimizer.minimize来增加全局步长。
要了解为什么会发生这种情况,我创建了以下简单的玩具程序:
#!/usr/bin/python
import tensorflow as tf
a = tf.get_variable('a', initializer=tf.constant([1.0]))
b = tf.get_variable('b', initializer=tf.constant([2.0]))
c = a + b
global_step = tf.train.get_or_create_global_step()
init = tf.global_variables_initializer()
with tf.train.MonitoredTrainingSession(checkpoint_dir='./logdir') as sess:
sess.run(init)
print (sess.run(c))
for _ in range(100):
sess.run(c)
上面的程序还显示了相同类型的警告:
警告:tensorflow:似乎全局步长(tf.train.get_global_step)尚未增加。当前值(可能是稳定值):0与先前值:0。您可以通过将tf.train.get_global_step()传递给Optimizer.apply_gradients或Optimizer.minimize来增加全局步长。
但是在某些情况下,例如检查开发集的准确性,可以预期global_step不会增加。调用sess.run时,有什么方法可以禁用此警告?