# tf.Variable() variable 且以大写字母开头,该函数在于定义一个变量
import tensorflow as tf
a1 = tf.Variable(1, name='a1') # 用变量初始化
a2 = tf.Variable(tf.constant(1), name='a2') # 用变量初始化
a3 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a3') # 用随机数初始化
a4 = tf.Variable(tf.ones(shape=[2,3]), name='a4') # 用one矩阵初始化
init = tf.global_variables_initializer() #输出数据时必须要全局初始化
with tf.Session() as sess:
sess.run(init)
print sess.run(a1)
print sess.run(a2)
print sess.run(a3)
# tf.get_variable():可根据 name 值,返回该变量,如果该 name 不存在的话,则会进行创建;
# 定义常量
a5 = tf.get_variable(name='a5', initializer=22)
# 定义正态分布的随机变量
a6 = tf.get_variable(name='a6', shape=[2,3], initializer=tf.random_normal_initializer(mean=0, stddev=1))
# 定义常量向量
a7 = tf.get_variable(name='a7', shape=[1], initializer=tf.constant_initializer(1))
# 全是1的矩阵
a8 = tf.get_variable(name='a8', shape=[2,3], initializer=tf.ones_initializer())
init = tf.global_variables_initializer() #输出数据时必须要全局初始化
with tf.Session() as sess:
sess.run(init)
print sess.run(a5)
print sess.run(a6)
print sess.run(a7)
print sess.run(a8)
tf.get_variable(name, shape, initializer): name就是变量的名称,shape是变量的维度,initializer是变量初始化的方式,初始化的方式有以下几种:
tf.constant_initializer:常量初始化函数
tf.random_normal_initializer:正态分布
tf.truncated_normal_initializer:截取的正态分布
tf.random_uniform_initializer:均匀分布
tf.zeros_initializer:全部是0
tf.ones_initializer:全是1
tf.uniform_unit_scaling_initializer:满足均匀分布,但不影响输出数量级的随机值