tf.get_variable函数的使用

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:满足均匀分布,但不影响输出数量级的随机值

如下应用:

def variable_on_cpu(name, shape, initializer = tf.constant_initializer(0.1)):
    with tf.device('/cpu:0'):
    dtype = tf.float32
    var = tf.get_variable(name, shape, initializer = initializer,
    dtype = dtype)
return var

# 用 get_variable 在 CPU 上定义变量
def variables(name, shape, stddev):
dtype = tf.float32
var = variable_on_cpu(name, shape,
tf.truncated_normal_initializer(stddev = stddev,
dtype = dtype))
return var

a1 = tf.get_variable(name='a1', shape=[2,3], initializer=tf.random_normal_initializer(mean=0, stddev=1))
a2 = tf.get_variable(name='a2', shape=[1], initializer=tf.constant_initializer(1))
a3 = tf.get_variable(name='a3', shape=[2,3], initializer=tf.ones_initializer())
a4 = tf.get_variable(name="a4", shape=[3,4], initializer = tf.zeros_initializer())
a5 = variable_on_cpu("a5", shape=[2,4], initializer=tf.ones_initializer())

with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
print(sess.run(a1))
print(sess.run(a2))
print(sess.run(a3))
print(sess.run(a4))
print(sess.run(a5))

原文地址:https://www.cnblogs.com/pzf9266/p/8805039.html