本文是对tensorflow中文文档http://wiki.jikexueyuan.com/project/tensorflow-zh/how_tos/variables.html的理解。
当训练模型时,用变量来存储和更新参数。建模时它们需要被明确地初始化,模型训练后它们必须被存储到磁盘。这些变量的值可在之后模型训练和分析是被加载。
创建:
# 创建一个变量, 初始化为标量 0.
state = tf.Variable(0, name="counter")
# 创建一个 op, 其作用是使 state 增加 1
one = tf.constant(1)
new_value = tf.add(state, one)
update = tf.assign(state, new_value)
初始化
# 首先必须增加一个`初始化` op 到图中.
init_op = tf.initialize_all_variables()
执行:
# 启动图, 运行 op
with tf.Session() as sess:
# 运行 'init' op
sess.run(init_op)
# 打印 'state' 的初始值
print sess.run(state)
# 运行 op, 更新 'state', 并打印 'state'
for _ in range(3):
sess.run(update)
print sess.run(state)
结果:
# 输出:# 0
# 1
# 2
# 3
注意:
对于tf.constant
如果定义:a =tf.constant(-2.0,shape=[3])
>>a=[-2.0,-2.0,-2.0]
tf.Variable(初始化值,name='名字')#不要定义shape,这个初始化值,可以是一个数值(如2.0),也可以是一个常量 如tf.Variable(a)得到的就是初始化值为[-2.0,-2.0,-2.0]的变量
tf.get_variable(dtype = tf.int32,shape = [3,2],name='qw')
>>[[ 0.36096191 -0.78045774]
[ 0.33877492 0.87490582]
[-0.83722663 -0.17767143]]
随机初始化,得到一个shape为[3,2]的矩阵。