当我阅读global_step的文档时,这个问题出现了.这里明确声明global_step不可训练.
global_step_tensor = tf.Variable(10,trainable = False,name ='global_step')
sess = tf.Session()
print('global_step:%s'%tf.train.global_step(sess,global_step_tensor))
根据我的理解,可训练意味着可以在sess.run()期间更改值.我试图宣布它既可训练又不训练,并得到相同的结果.所以我不明白为什么我们需要声明它不可训练.
我阅读了可训练的文件,但并没有得到它.
所以我的问题是:
GPh*_*ilo 13
根据我的理解,可训练意味着可以在sess.run()期间更改值
这不是可训练变量的定义.任何变量都可以在a期间修改sess.run()(这就是为什么它们是变量而不是常量).
可训练变量和不可训练变量之间的区别用于让我们Optimizer知道它们可以作用于哪些变量.定义a时tf.Variable(),设置trainable=True(默认值)会自动将变量添加到GraphKeys.TRAINABLE_VARIABLES集合中.在培训期间,优化程序通过tf.trainable_variables()并获取该集合的内容并将其应用于所有这些内容.
非训练变量的典型示例是global_step,因为其值随时间变化(通常在每次训练迭代时为+1),但您不希望对其应用优化算法.
| 归档时间: |
|
| 查看次数: |
4200 次 |
| 最近记录: |