因此,我正在尝试进行训练,当我尝试运行算法时(当我使用tf.train.get_global_step()
时,出现此错误:
ValueError: global_step is required for exponential_decay.
由于某种原因,tf.train.get_or_create_global_step()
对我不存在,我不确定是否是因为这是一种已删除的方法或其他方法。我更新了TensorFlow以及所有最新信息。
我已经仔细阅读了文档,却一无所获。运行时,我将tf.app.run()
与主要功能结合使用。
还有另一种方法来初始化全局step变量吗?
答案 0 :(得分:1)
尽管tf.train.get_or_create_step()
很好,但这是另一种解决方案:
g_step = tf.get_variable('global_step', trainable=False, initializer=0)
learning_rate = tf.train.exponential_decay(0.1, g_step)
tf.train.AdamOptimizer(learning_rate).minimize(loss=loss, global_step=g_step)
创建一个不可训练的变量,将其初始化为零,并将其传递给Optimizer。
如果以后需要global_step,请使用tf.train.global_step()
:
sess = tf.Session()
# Initialize the variable
sess.run(g_step.initializer)
print('global_step: %s' % tf.train.global_step(sess, g_step))
答案 1 :(得分:0)