tf.random_normal()
作用:
生成正态分布的随机数
定义:
random_normal(
shape,
mean=0.0,
stddev=1.0,
dtype=tf.float32,
seed=None,
name=None
)
必选参数:
shape:指定生成随机数每个维度的大小
关键字参数:
mean:生成随机数的平均值
stddev:生成随机数的标准差
dtype:生成随机数的数据类型
seed:生成随机数的随机种子
name:生成随机数的名称
mean值设定分析:
测试代码:
import tensorflow as tf
import matplotlib.pyplot as plt
with tf.Session() as sess:
value = tf.random_normal(shape=[10000], mean=0.0)
value_get = sess.run(value) # 生成随机数
value_list = value_get.tolist() # 将随机数转化为list
plt.xlim(-30, 30) # 设置x轴范围为[-30,30]
plt.hist(value_list, 100) # 绘制直方图,柱数为100
plt.show()
设置mean=0.0:
设置mean=10.0:
修改mean值使随机数以mean为中心分布。
stddev值设定分析:
测试代码与平均值相同,mean改为stddev。
设置stddev=1.0:
设置stddev=10.0:
stddev值越大,随机数分布越离散。
seed值设定分析:
测试代码:
import tensorflow as tf
with tf.Session() as sess:
a = tf.random_normal(shape=[3], seed=1)
b = tf.random_normal(shape=[4], seed=1)
c = tf.random_normal(shape=[3], seed=2)
print("a: ", sess.run(a))
print("b: ", sess.run(b))
print("c: ", sess.run(c))
输出:
a: [-0.8113182 1.4845988 0.06532937]
b: [-0.8113182 1.4845988 0.06532937 -2.4427042 ]
c: [-0.85811085 -0.19662298 0.13895045]
设置相同的seed值,生成相同的随机数列表。
tf.constant_initializer()
作用:
常量生成器
定义:
__init__(
value=0,
dtype=tf.float32,
verify_shape=False
)
关键字参数:
value:常量值
dtype:类型
verify_shape:检查value是否与张量的形状兼容
tf.truncated_normal_initializer()
作用:
正态分布随机数的生成器(偏离平均值大于2个标准差的数将被重新随机)
定义:
__init__(
mean=0.0,
stddev=1.0,
seed=None,
dtype=tf.float32
)
关键字参数:
mean:平均值
stddev:方差
seed:随机种子
dtype:类型