当训练一个模型时,使用Variable保存和更新参数,variable是一块存储的内存,variable需要显示的initialized
而且也可以在训练过程和结束后存在到硬盘中,也可以重新载入到模型
# Create a variable with a random value.
weights = tf.Variable(tf.random_normal([784, 200], stddev=0.35),
name="weights")
# Create another variable with the same value as 'weights'.
w2 = tf.Variable(weights.initialized_value(), name="w2")
# Create another variable with twice the value of 'weights'
w_twice = tf.Variable(weights.initialized_value() * 0.2, name="w_twice")
创建:
当你创建一个Variable是,你需要传递一个Tensor给Variable()构造器。通常是常量或者随机值。Variable创建需要
指定的shape,tensorflow提供了修改variable shape的方法
# Create two variables.
weights = tf.Variable(tf.random_normal([784, 200], stddev=0.35),
name="weights")
biases = tf.Variable(tf.zeros([200]), name="biases")
调用 tf.variable()方法添加了以下几个ops到graph中:
1,一个 Varible操作持有Variable变量
2,一个初始化(initializer)操作,将初始值赋值给Variable, 这实际上是一个 tf.assign操作
3,正对初始值得操作,例如,zeros()操作和random_normal()操作添加到graph中
返回一个python类 tf.Variable
初始化:
Variable的初始化必须在运行graph之前显示地运行,最方便的方法时 运行 tf.initialize_all_variables().
通过其他Variable初始化
# Create a variable with a random value.
weights = tf.Variable(tf.random_normal([784, 200], stddev=0.35),
name="weights")
# Create another variable with the same value as 'weights'.
w2 = tf.Variable(weights.initialized_value(), name="w2")
# Create another variable with twice the value of 'weights'
w_twice = tf.Variable(weights.initialized_value() * 0.2, name="w_twice")
关于Variable详细信息
http://wiki.jikexueyuan.com/project/tensorflow-zh/api_docs/python/state_ops.html