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为啥变量一定要初始化的主要内容,如果未能解决你的问题,请参考以下文章