使用MonitoredTrainingSession

时间:2018-09-23 02:53:39

标签: python tensorflow

在我的一个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时,有什么方法可以禁用此警告?

0 个答案:

没有答案