一、tf.truncated_normal 和 tf.random_normal
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
shape: 张量维度
mean: 正态分布的均值
stddev: 正态分布的标准差
dtype: 输出的类型
seed: 一个整数,当设置之后,每次生成的随机数都一样
name: 操作的名字
这个函数产生正态分布,均值和标准差自己设定。
这是一个截断的产生正态分布的函数,就是说产生正态分布的值如果与均值的差值大于两倍的标准差,那就重新生成。
和一般的正太分布的产生随机数据比起来,这个函数产生的随机数与均值的差距不会超过两倍的标准差,但是一般的别的函数是可能的
import tensorflow as tf;
import numpy as np;
import matplotlib.pyplot as plt;
c = tf.truncated_normal(shape=[10,10], mean=0, stddev=1)
with tf.Session() as sess:
print sess.run(c)
二、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: 操作的名字
三、两者的区别
tf.truncated_normal
与tf.random_normal
的作用都是从给定均值和方差的正态分布中输出变量。
两者的区别在于tf.truncated_normal
截取的是两个标准差以内的部分,换句话说就是截取随机变量更接近于均值