在创造变量(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']