在创造变量(tf.Variable、tf.get_variable等)时,都会有一个trainable的选项,表示该变量是否可训练,这个函数会返回图中所有trainable=True的变量。tf.get_variable和tf.Variable的默认选项是True,而tf.constant只能是False:
import tensorflow as tf
a = tf.get_variable('a', shape=[5, 2])
b = tf.get_variable('b', shape=[2, 5], trainable=False)
c = tf.constant([1, 2, 3], dtype=tf.int32, shape=[8], name='c')
d = tf.Variable(tf.random_uniform(shape=[3, 3]), name='d')
tvar = tf.trainable_variables()
tvar_name = [x.name for x in tvar]
print(tvar)
print(tvar_name)
执行结果:
[<tf.Variable 'a:0' shape=(5, 2) dtype=float32_ref>, <tf.Variable 'd:0' shape=(3, 3) dtype=float32_ref>]
['a:0', 'd:0']
这篇博客探讨了在TensorFlow中创建变量时trainable选项的重要性。`tf.get_variable`和`tf.Variable`默认情况下变量是可训练的,而`tf.constant`则不可训练。示例代码展示了如何获取图中所有可训练变量,并打印其名称。结果显示,变量'a'和'd'是可训练的。
4万+

被折叠的 条评论
为什么被折叠?



