原文地址:
https://blog.csdn.net/u013713117/article/details/65446361/
一、tf.truncated_normal
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
- 从截断的正态分布中输出随机值。生成的值服从具有指定平均值和标准偏差的正态分布,如果生成的值大于平均值2个标准偏差的值则丢弃重新选择。
- 在正态分布的曲线中,横轴区间
(μ-2σ,μ+2σ)
内的面积为95.449974%
。在tf.truncated_normal
中如果x的取值在区间(μ-2σ,μ+2σ)
之外则重新进行选择。这样保证了生成的值都在均值附近。 - 参数:
shape: 一维的张量,也是输出的张量。
mean: 正态分布的均值。
stddev: 正态分布的标准差。
dtype: 输出的类型。
seed: 一个整数,当设置之后,每次生成的随机数都一样。
name: 操作的名字。
二、tf.random_normal
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
- 从正态分布中输出随机值。
- 参数:
shape: 一维的张量,也是输出的张量。
mean: 正态分布的均值。
stddev: 正态分布的标准差。
dtype: 输出的类型。
seed: 一个整数,当设置之后,每次生成的随机数都一样。
name: 操作的名字。
结果比较图见文章:
https://blog.csdn.net/u014687582/article/details/78027061
可见截断的好处主要就在于可以避免偏差太大,可以使随机值集中在均值附近。