对Tensorflow中的变量初始化函数详解

Tensorflow 提供了7种不同的初始化函数:

tf.constant_initializer(value) #将变量初始化为给定的常量,初始化一切所提供的值。

假设在卷积层中,设置偏执项b为0,则写法为:
1. bias_initializer=tf.constant_initializer(0)
2. bias_initializer=tf.zeros_initializer(0)

tf.random_normal_initializer(mean,stddev) #功能是将变量初始化为满足正太分布的随机值,主要参数(正太分布的均值和标准差),用所给的均值和标准差初始化均匀分布

tf.truncated_normal_initializer(mean,stddev,seed,dtype) #功能:将变量初始化为满足正太分布的随机值,但如果随机出来的值偏离平均值超过2个标准差,那么这个数将会被重新随机

mean:用于指定均值;stddev用于指定标准差;seed:用于指定随机数种子;dtype:用于指定随机数的数据类型。
通常只需要设定一个标准差stddev这一个参数就可以。

tf.random_uniform_initializer(a,b,seed,dtype) #从a到b均匀初始化,将变量初始化为满足平均分布的随机值,主要参数(最大值,最小值)

tf.uniform_unit_scaling_initializer(factor,seed,dtypr) #将变量初始化为满足平均分布但不影响输出数量级的随机值

max_val=math.sqrt(3/input_size)*factor;
input_size指输入数据的维数,假设输入为x,计算为x*w,则input_size=w.shape[0].
其分布区间为[-max_val,max_val]

tf.zeros_initializer() #将变量设置为全0;也可以简写为tf.Zeros()

tf.ones_initializer() #将变量设置为全1;可简写为tf.Ones()

相关推荐