在TensorFlow的整个设计框架中,会话Session之前的图结构设计中,除了constant型是做了默认的初始化定义,其他的变量声明以及占位符都是一种数据初始化方法的描绘。
当然占位符是预告在运行过程中得到各种导入的数据(如输入数据、文件导入等),那么对于常常用来进行权重迭代的变量,在初始化的时候一般会以某种随机函数被赋以随机值(避免进行拟合陷阱),这样的变量赋值都是一个描绘,需要在会话中进行真实执行,也就是在session中,要对变量进行初始化操作,否则会出现无法执行或者执行出错的情况。
常用的初始化方法有:
weight = tf.Variable(tf.random_normal([2,3],stddev=1.0,seed=1))
sess = tf.Session()
sess.run(weight.initializer)
但是也要注意当变量很多的时候,一个个进行变量的初始化非常消耗精力,而且有时候的变量依赖关系【一会儿讲到】会成为大问题,所以也常常用一个简单的函数来进行操作,整个函数其实对于变量进行了统筹管理,方便我们码农专注在更有价值的部分:
sess = tf.Session()
init_op = tf.initialize_all_variables()
sess.run(init_op)
是了一个tf.initialzie_all_variables(),【该函数在2017年3月后被升级为了:global_variables_initializer()】类似一个变量管理器的启动函数,一定在sess中