tensorflow的变量常用于定义神经网络的权重和偏置,深度学习中常常用随机数或0进行初始化,它在初始化之后,必须进行显示的初始化说明。
例如下面的例子:
#tensorflow变量的演示
import tensorflow as tf
rand_t = tf.random_uniform([5, 5], 0, 10, seed = 10)#产生0~10之间是均匀分布的随机数,种子为10
t_a = tf.Variable(rand_t)#定义变量的同时进行幅值
t_b = tf.Variable(rand_t)
weights = tf.Variable(tf.random_normal([5, 5], stddev = 1 ))#均值为0,标准差为2, 大小为5*5
bias = tf.Variable(tf.zeros([4, 4]), name = 'biases') #0矩阵,可选名为:biases
intial_op = tf.global_variables_initializer() #申明初始化操作对象,对所以变量初始化
with tf.Session() as sess:
sess.run(bias.initializer)#只对某个变量进行初始化
print(sess.run(bias))
print(sess.run(t_a))
会发生报错,因为t_a没有初始化
我们可以对所有变量进行初始化
#tensorflow变量的演示
import tensorflow as tf
rand_t = tf.random_uniform([5, 5], 0, 10, seed = 10)#产生0~10之间是均匀分布的随机数,种子为10
t_a = tf.Variable(rand_t)#定义变量的同时进行幅值
t_b = tf.Variable(rand_t)
weights = tf.Variable(tf.random_normal([5, 5], stddev = 1 ))#均值为0,标准差为2, 大小为5*5
bias = tf.Variable(tf.zeros([4, 4]), name = 'biases') #0矩阵,可选名为:biases
intial_op = tf.global_variables_initializer() #申明初始化操作对象,对所以变量初始化
with tf.Session() as sess:
sess.run(intial_op)#对所有变量进行初始化
print(sess.run(bias))
print(sess.run(t_a))
输出结果:
================ RESTART: F:/tensorflow_code/tensorflow变量.py ================ [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]] [[1.585741 1.6258383 4.098324 1.9529402 2.6489758 ] [3.8028598 6.308771 5.637535 8.381234 5.0919294 ] [1.3144398 5.236477 3.858428 0.4855621 1.6433549 ] [9.507733 8.029479 8.577951 1.9937825 8.470536 ] [7.9014673 2.721119 0.19138575 9.419489 6.365589 ]]



