tensorflow为啥变量一定要初始化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tensorflow为啥变量一定要初始化相关的知识,希望对你有一定的参考价值。

tensorflow实际是以graph图表结构的形式运行的,在执行sess.run(传入需要取值的节点)时才去计算该图表某个节点的值,在此之前的操作都是为了构建此graph的结构并没有真正的赋于实际的值。执行variable(1)时也就是只是定义结构(类型为变量,初始值为1)。只有执行变量初始化方法时才赋予其定义的值。 参考技术A 如何使用tensorflow内置的参数导出和导入方法:基本用法
如果你还在纠结如何保存tensorflow训练好的模型参数,用这个方法就对了
The Saver class adds ops to save and restore variables to and from checkpoints. It also provides convenience methods to run these ops.来自官网的介绍。
import tensorflow as tf
"""
变量声明,运算声明 例:w = tf.get_variable(name="vari_name", shape=[], dtype=tf.float32)
初始化op声明
"""
#创建saver对象,它添加了一些op用来save和restore模型参数
saver = tf.train.Saver()

with tf.Session() as sess:
sess.run(init_op)
#训练模型。。。
#使用saver提供的简便方法去调用 save op
saver.save(sess, "save_path/file_name.ckpt") #file_name.ckpt如果不存在的话,会自动创建
#后缀可加可不加

Tensorflow全局变量初始化问题

在使用Tensorflow框架进行两层卷积神经网络实现的时候,使用tf.global_Variables_initializer()进行初始化时一定要加.run()方法,Tensorflow与我们正常的编程思想略有不同:Tensorflow中的语句不会立即执行,而是等到开启会话Session的时候,才会执行session.run()的语句;其次是版本的问题,tf.global_Variables_initializer().run()是最新版本的全局初使化语句,较旧版本的写法为:tf.initilize_all_variables().run().

以上是关于tensorflow为啥变量一定要初始化的主要内容,如果未能解决你的问题,请参考以下文章

Tensorflow全局变量初始化问题

Tensorflow学习教程------变量

C语言中使用变量为啥必须要初始化?

在tensorflow程序运行的时候一定要记住初始化

用Anaconda安装Tensorflow经验之谈

.为啥c语言里有的变量要赋初值,有的变量不用赋。