c++使用了未初始化的局部变量怎么解决_TensorFlow学习Program1——补充附录(12) TF各类初始化器之介绍、区别、用途...

使用TensorFlow的时候定义了变量之后还需要初始化之后才能使用,不然会报错:Attempting to use uninitialized value,下面介绍TensorFlow中常用的几种初始化操作

1、tf.global_variable_initializer

官方介绍地址:tf.initializers.global_variables | TensorFlow Core r1.15

用来初始化计算图中的全局的变量,全局变量是指创建的变量在tf.GraphKeys.GLOBAL_VARIABLES中,在使用Variable创建变量时collections默认是tf.GraphKeys.GLOBAL_VARIABLES

if __name__ == "__main__":
    v = tf.Variable(1)
    c = tf.constant(2)
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        print(sess.run(v))
        print(sess.run(c))

2、tf.initialize_all_variables(忽略即可)

cee8192f3cce30f7f52b9def7d955d5c.png

2017年3月2日之后使用global_variables_initializer()来代替tf.initialize_all_variables()。

3、tf.initialize_local_variables

初始化计算图中所有的局部变量,局部变量是指创建的变量在tf.GraphKeys.LOCAL_VARIABLES中,在使用saver的时候,局部变量是不存于模型文件中的。在使用Variable创建变量时,collections需要赋值以[tf.GraphKeys.LOCAL_VARIABLES]

if 

注意:在使用局部变量时必须使用tf.local_variables_initializer初始化器,在使用全局变量时必须使用tf.global_variables_initializer初始化器,不然会报tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value。 也可以init=(tf.local_variables_initializer, tf.global_variable_initializer)+sess.run(init)来确保两类变量都被初始化

4、其他种类初始化器

暂时没使用到其他类型初始化器,但也是存在的,可参见<TensorFlow初始化器:tf.glorot_normal_initializer>

本文参考:

https://blog.csdn.net/sinat_29957455/article/details/83118952

https://blog.csdn.net/yyhhlancelot/article/details/81415137

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值