tf.truncated_normal与tf.random_normal的区别

转自:https://blog.csdn.net/u013713117/article/details/65446361/

tf.truncated_normaltf.random_normal的作用都是从给定均值和方差的正态分布中输出变量。两者的区别在于tf.truncated_normal 截取的是两个标准差以内的部分,换句话说就是截取随机变量更接近于均值。

The generated values follow a normal distribution with specified mean and
standard deviation, except that values whose magnitude is more than 2 standard
deviations from the mean are dropped and re-picked.

在正态分布的曲线中:
横轴区间(μ-σ,μ+σ)内的面积为68.268949%。
横轴区间(μ-2σ,μ+2σ)内的面积为95.449974%。
横轴区间(μ-3σ,μ+3σ)内的面积为99.730020%。
X落在(μ-3σ,μ+3σ)以外的概率小于千分之三,在实际问题中常认为相应的事件是不会发生的,基本上可以把区间(μ-3σ,μ+3σ)看作是随机变量X实际可能的取值区间,这称之为正态分布的“3σ”原则。
在tf.truncated_normal中如果x的取值在区间(μ-2σ,μ+2σ)之外则重新进行选择。这样保证了生成的值都在均值附近。

tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

参数:

  • shape: 张量维度
  • mean: 正态分布的均值
  • stddev: 正态分布的标准差
  • dtype: 输出的类型
  • seed: 一个整数,当设置之后,每次生成的随机数都一样
  • name: 操作的名字
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

参数:

  • shape: 张量维度
  • mean: 正态分布的均值
  • stddev: 正态分布的标准差
  • dtype: 输出的类型
  • seed: 一个整数,当设置之后,每次生成的随机数都一样
  • name: 操作的名字

猜你喜欢

转载自blog.csdn.net/The_lastest/article/details/80984990