gpt4 book ai didi

python - tf.variable 在 TensorFlow 中是可训练的是什么意思

转载 作者:太空狗 更新时间:2023-10-30 00:31:01 25 4
gpt4 key购买 nike

当我阅读 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() 期间更改该值。我试图声明它既可训练又不可训练,并得到了相同的结果。所以我不明白为什么我们需要声明它不可训练。

我阅读了 trainable 的文档但不太明白。

所以我的问题是:

  1. 能否在 sess.run() 期间更改不可训练的变量值,反之亦然?
  2. 使变量不可训练的意义何在?

最佳答案

From my understanding, trainable means that the value could be changed during sess.run()

这不是可训练变量的定义。 任何变量都可以在sess.run()期间修改(这就是为什么它们是变量而不是常量)。

可训练变量和不可训练变量之间的区别用于让优化器知道它们可以对哪些变量采取行动。定义 tf.Variable() 时,设置 trainable=True(默认值)会自动将变量添加到 GraphKeys.TRAINABLE_VARIABLES 集合中。在训练期间,优化器通过 tf.trainable_variables() 获取该集合的内容,并将训练应用于所有内容。

不可训练变量的典型示例是 global_step,因为它的值确实会随时间变化(通常在每次训练迭代时 +1),但您不想应用优化算法。

关于python - tf.variable 在 TensorFlow 中是可训练的是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48460057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com