如何在Tensorflow中创建一个不可训练的变量?

cer*_*rou 4 tensorflow

是否存在一个指定tf.Variable不可训练的参数,以便该变量不包括在内tf.trainable_variables()

Eri*_*ton 7

您可以在定义上将变量标记为"不可训练" :

v = tf.Variable(tf.zeros([1]), trainable=False)
Run Code Online (Sandbox Code Playgroud)

从链接文档(大约TensorFlow v0.11):

trainable:如果为True,则默认值也会将变量添加到图形集合GraphKeys.TRAINABLE_VARIABLES中.此集合用作Optimizer类使用的默认变量列表.

还有一些方法可以使用诸如tf.get_variable([v])之类的 API来改变这种情况.


Sal*_*ali 5

您可以通过两种不同的方式创建不可训练的变量:

没有简单的方法可以将变量从可训练变为非训练变量.此外,没有简单的方法来检查变量是否可训练(您需要检查变量的名称是否在列表中tf.trainable_variables()