tf.Variable()

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

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

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

初始化

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

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

栗子:

import tensorflow as tf
a1 = 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 tf
a1 = 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变量初始化a4
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))
    print("a4 is %s\n"%(a4))
    print("a4 value is =\n%s\n"%sess.run(a4))



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值