TensorFlow框架 tf.truncated_normal 与 tf.random_normal 函数用法
2019-03-14 18:11
阅读 1465
tf.truncated_normal
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
截断正态分布随机数,均值mean,标准差stddev,不过只保留[mean-2stddev,mean+2stddev]范围内的随机数
参数:
- shape: 一维的张量,也是输出的张量。
- mean: 正态分布的均值。
- stddev: 正态分布的标准差。
- dtype: 输出的类型。
- seed: 一个整数,当设置之后,每次生成的随机数都一样。
这个函数产生正太分布,均值和标准差自己设定。
这是一个截断的产生正太分布的函数,就是说产生正太分布的值如果与均值的差值大于两倍的标准差,那就重新生成。在tf.truncated_normal中如果x的取值在区间(μ-2σ,μ+2σ)之外则重新进行选择。这样保证了生成的值都在均值附近。
import tensorflow as tf
c = tf.truncated_normal(shape=[3, 10], mean=0, stddev=1)
with tf.Session() as sess:
print(sess.run(c))
# [[ 0.00207981 1.0078866 -0.2173244 -0.6227373 -0.13671626 0.54306096
# 0.05961955 -0.71078813 1.0603966 1.5214361 ]
# [-0.5301567 1.2580009 -0.5151801 -0.6678964 -1.1711869 0.5603977
# 1.417851 1.0876915 0.82065904 -0.32612598]
# [ 0.2213394 0.77497286 0.01020927 -1.3128651 -0.70711106 -0.95805985
# 0.9908921 -1.1788669 -0.14797276 -0.5546111 ]]
tf.random_normal
tf.random_normal(shape,mean=0.0,stddev=1.0,dtype=tf.float32,seed=None,name=None)
正太分布随机数,均值mean,标准差stddev
- shape: 一维的张量,也是输出的张量。
- mean: 正态分布的均值。
- stddev: 正态分布的标准差。
- dtype: 输出的类型。
- seed: 一个整数,当设置之后,每次生成的随机数都一样。
- name: 操作的名字。
import tensorflow as tf
c = tf.random_normal(shape=[3, 10], mean=0, stddev=1)
with tf.Session() as sess:
print(sess.run(c))
# [[-1.0658871 -0.44731724 1.833981 1.6720905 0.37245286 -0.23843694
# -0.19678928 1.6637603 -0.73289555 -1.3160926 ]
# [ 0.39453745 2.305284 -1.653993 1.2474583 -0.6090688 -1.3814263
# 2.0207896 -0.8321093 1.0032438 -1.9647788 ]
# [-0.2059964 1.486868 0.9989834 0.2961966 1.0740569 0.04554983
# 0.69583106 0.26478663 0.42541358 1.1142943 ]]
评论列表(0条)