Tensorflow基础之变量及会话
变量
TensorFlow 变量是表示由程序操纵的共享持久状态的最佳方法。变量可通过tf.Variable类进行操作。
Tf.Variable()构造函数构造的变量可以是一个任意类型和形状的Tensor。构造后,变量的类型和形状是固定的。
在训练模型时,某些参数变量是需要长期保存并不断的迭代更新的,可以将参数变量以Tensor的形式存储在某个变量中。
- 创建变量:
在创建一个变量时,将一个张量作为初始值传入构造函数Variable()。
例:
my_Variable = tf.Variable(tf.zeros([1, 2, 3]))
#创建一个变量,该变量为三维变量,形状为[1, 2, 3]。
`在默认情况下,该变量具有dtype tf.float32。如果未指定类型,则从初始值中推断出dtype。
在需要赋值给一个变量时,使用assign,assign_add的方法,例:
V = tf.Variable(0.0)
V.assign_add(1)
- 变量的初始化:
在模型的其它操作进行之前,变量的初始化必须首先明确的完成。最简单明了的方法就是在模型运行前一次性对所有变量进行初始化操作。使用tf.initialize_all_variable()方法会所有变量进行初始化。
但是当你初始化的变量需要使用另外一个变量的初始化值进行初始化时,由于tf.initialize_all_variable()方法是并行地初始化所有变量,这时我们需要使用其它变量的initialized_value()的属性,直接把已初始化的值作为新变量的初始值。
例:
weights = tf.Variable(tf.random_normal([784, 200], stddev=0.35),name="weights")
w2 = tf.Variable(weights.initialized_value(), name="w2")
会话(tf.session)
会话,主要用于执行网络。所有关于神经网络的计算都在这里进行,它执行的依据是计算图或者计算图的一部分,同时,会话也会负责分配计算资源和变量存放,以及维护执行过程中的变量。
会话的使用方法:
#method 1:
import tendorflow as tf
Product = tf.constant(1.0)
sess = tf.Session()
print(sess.run(Product))
sess.close()
#该形式在使用完之后,不再需要时释放资源是很重要的,调用sess.close()方法释放资源
#method 2
import tensorflow as tf
Product = tf.constant(1.0)
with tf.Session() as sess:
print(sess.run(Product))