参考 tf.trainable_variables - 云+社区 - 腾讯云
返回所有使用trainable=True创建的变量。
tf.trainable_variables(scope=None)
当传递trainable=True时,Variable()构造函数自动向graph collection GraphKeys.TRAINABLE_VARIABLES添加新变量。这个便利函数返回集合的内容。
参数:
- 范围:(可选)。一个字符串。如果提供,则筛选结果列表,使其只包含名称属性与使用re.match的范围相匹配的项。如果提供范围,则永远不会返回没有name属性的项。选择re.match意味着没有特殊令牌的范围将通过前缀过滤。
返回值:
- 变量对象的列表。
例:
tf.trainable_variables和tf.all_variables的对比
- tf.trainable_variables返回的是需要训练的变量列表
- tf.all_variables返回的是所有变量的列表
import tensorflow as tf;
import numpy as np;
import matplotlib.pyplot as plt;
v = tf.Variable(tf.constant(0.0, shape=[1], dtype=tf.float32), name='v')
v1 = tf.Variable(tf.constant(5, shape=[1], dtype=tf.float32), name='v1')
global_step = tf.Variable(tf.constant(5, shape=[1], dtype=tf.float32), name='global_step', trainable=False)
ema = tf.train.ExponentialMovingAverage(0.99, global_step)
for ele1 in tf.trainable_variables():
print ele1.name
for ele2 in tf.all_variables():
print ele2.name
Output:
---------------
v:0
v1:0
v:0
v1:0
global_step:0
---------------
分析:上面得到两个变量,后面的一个得到上三个变量,因为global_step在声明的时候说明不是训练变量,用来关键字trainable=False。