TensorFlow如何初始化全局步骤

时间:2019-01-21 06:07:08

标签: python tensorflow

因此,我正在尝试进行训练,当我尝试运行算法时(当我使用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变量吗?

2 个答案:

答案 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)

所以没有显示此功能的原因是,尽管实际上告诉我我是最新的,但实际上我并未使用过最新版本的TensorFlow。

在这里看到:

seen here

所以我要解决的所有事情就是卸载tensorflow,然后从实际的链接中安装我不再使用它,但是快速的Google搜索就足够了。