tf.Variable()

来源:互联网 发布:html js添加class 编辑:程序博客网 时间:2024/05/22 03:13

主要参考这里点击打开链接,当训练模型时,用变量来存储和更新参数。变量包含张量 (Tensor)存放于内存的缓存区。建模时它们需要被明确地初始化,模型训练后它们必须被存储到磁盘。这些变量的值可在之后模型训练和分析是被加载。

当创建一个变量时,你将一个张量作为初始值传入构造函数Variable()。TensorFlow提供了一系列操作符来初始化张量,初始值是常量或是随机值。

注意,所有这些操作符都需要你指定张量的shape。那个形状自动成为变量的shape。变量的shape通常是固定的,但TensorFlow提供了高级的机制来重新调整其行列数。

初始化

变量的初始化必须在模型的其它操作运行之前先明确地完成。最简单的方法就是添加一个给所有变量初始化的操作,并在使用模型之前首先运行那个操作。

使用tf.initialize_all_variables()添加一个操作对变量做初始化。记得在完全构建好模型并加载之后再运行那个操作。

栗子:

import tensorflow as tfa1 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a1')  a2 = tf.Variable(tf.constant(1), name='a2')  a3 = tf.Variable(tf.ones(shape=[2,3]), name='a3')  with tf.Session() as sess:      sess.run(tf.global_variables_initializer())     print("a1 is %s\n"%(a1))    print("a1 value is =\n%s\n"%sess.run(a1))     print("a2 is %s\n"%(a2))    print("a2 value is =\n%s\n"%sess.run(a2))    print("a3 is %s\n"%(a3))    print("a3 value is =\n%s\n"%sess.run(a3)) 

由另一个变量初始化

用其它变量的值初始化一个新的变量时,使用其它变量的initialized_value()属性。你可以直接把已初始化的值作为新变量的初始值,或者把它当做tensor计算得到一个值赋予新变量。

栗子:

import tensorflow as tfa1 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a1')  a2 = tf.Variable(tf.constant(1), name='a2')  a3 = tf.Variable(tf.ones(shape=[2,3]), name='a3')  a4=tf.Variable(a1.initialized_value(),name='a4')#这里用a1变量初始化a4with tf.Session() as sess:      sess.run(tf.global_variables_initializer())     print("a1 is %s\n"%(a1))    print("a1 value is =\n%s\n"%sess.run(a1))     print("a2 is %s\n"%(a2))    print("a2 value is =\n%s\n"%sess.run(a2))    print("a3 is %s\n"%(a3))    print("a3 value is =\n%s\n"%sess.run(a3))    print("a4 is %s\n"%(a4))    print("a4 value is =\n%s\n"%sess.run(a4))



原创粉丝点击