tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
函数的主要功能是实现从正态分布中输出随机值
参数的意义:
shape: 一维的张量,也是输出的张量。
mean: 正态分布的均值。
stddev: 正态分布的标准差。
dtype: 输出的类型。
seed: 一个整数,当设置之后,每次生成的随机数都一样,如果想每次都生成不一样,可以设置为None。
name: 操作名
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
shape 一个一维整数张量或Python数组。代表张量的形状。
mean=0.0 数据类型为dtype的张量值或Python值。是正态分布的均值。
stddev=1.0 数据类型为dtype的张量值或Python值。是正态分布的标准差
dtype=tf.float32 输出的数据类型。
seed=None 一个Python整数。是随机种子。
name=None 操作名(可选)
这个函数产生正太分布,均值和标准差自己设定。这是一个截断的产生正太分布的函数,就是说产生正太分布的值如果与均值的差值大于两倍的标准差,那就重新生成。和一般的正太分布的产生随机数据比起来,这个函数产生的随机数与均值的差距不会超过两倍的标准差,但是一般的别的函数是可能的。
作为tensorflow里的正态分布产生函数,这两个函数的输入参数几乎完全一致,
而其主要的区别在于,tf.truncated_normal的输出如字面意思是截断的,而截断的标准是2倍的stddev。
举例,当输入参数mean = 0 , stddev =1时,
使用tf.truncated_normal的输出是不可能出现[-2,2]以外的点的,
而如果shape够大的话,tf.random_normal却会产生2.2或者2.4之类的输出。