tensorflow有4个随机数生成函数,
tf.random_normal
tf.truncated_normal
tf.random_uniform
tf.random_gamma
下面依次介绍这4个生成器
tf.random_normal(
shape,
mean=0.0,
stddev=1.0,
dtype=tf.float32,
seed=None,
name=None)
生成服从正态分布的序列
- shape:生成序列的形状
- mean:均值,默认为0
- stddev:方差,默认为1,即默认生成服从标准正太分布的序列
- dtype:生成序列的数据类型,默认为tf.float
- seed:随机数种子,是一个整数,当设置之后,每次生成的随机数都一样(随机数生成器生成的每一个序列都对应一个序号,种子就是要取出序列的序号,所有种子为某个固定的数时,生成的随机数序列也是一定的)
- name:在图中的名称
测试代码:
>>> sess.run(tf.random_normal((2,3)))
array([[-1.8279679, 0.5287892, -0.7226615],
[ 1.2206156, 1.0232216, -1.4359798]], dtype=flo
at32)
truncated_normal(
shape,
mean=0.0,
stddev=1.0,
dtype=tf.float32,
seed=None,
name=None
)
产生阶段正态分布随机数序列,产生数的范围为[mean - 2 * stddev, mean + 2 * stddev],
测试代码
>>> sess.run(tf.truncated_normal((2,3)))
array([[ 1.1155893 , -0.12543556, 1.4562007 ],
[-0.257259 , 0.5197079 , -0.23471476]], dtype=
float32)
random_uniform(shape,
minval=0,
maxval=None,
dtype=dtypes.float32,
seed=None,
name=None)
生成均匀分布的序列,范围为[minval,maxval),默认为生成[0,1)之间均匀分布的序列
>>> sess.run(tf.random_uniform((2,3)))
array([[0.8456813 , 0.6756115 , 0.64133 ],
[0.6779822 , 0.00648534, 0.4588945 ]], dtype=flo
at32)
tf.random_gamma()生成Gamma分布
各个随机函数的作用在下面的表格中
tf的常数生成函数如下所示