当前位置:  开发笔记 > 人工智能 > 正文

tf.truncated_normal和tf.random_normal有什么区别?

如何解决《tf.truncated_normal和tf.random_normal有什么区别?》经验,为你挑选了3个好方法。

tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None) 输出正态分布的随机值.

tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None) 从截断的正态分布输出随机值.

我试着谷歌搜索'截断正态分布'.但是不太了解.



1> Salvador Dal..:

该文件说,这一切:为截断正态分布:

生成的值遵循具有指定平均值和标准偏差的正态分布,除了丢弃并重新选择幅度大于平均值2个标准偏差的值.

最有可能通过为自己绘制图形很容易理解差异(%magic是因为我使用了jupyter笔记本):

import tensorflow as tf
import matplotlib.pyplot as plt

%matplotlib inline  

n = 500000
A = tf.truncated_normal((n,))
B = tf.random_normal((n,))
with tf.Session() as sess:
    a, b = sess.run([A, B])

现在

plt.hist(a, 100, (-4.2, 4.2));
plt.hist(b, 100, (-4.2, 4.2));

在此输入图像描述


使用截断法线的要点是克服像sigmoid这样的大部分功能的饱和度(如果值太大/太小,则神经元停止学习).


@CarlosJimenezBermudez很难预测哪种初始化会带来最快的学习.random_normal可能与RELU激活一起使用.不使用random_normal的原因是sigmoid/tanh的饱和度,但现在不经常使用它们.

2> ksooklall..:

tf.truncated_normal()从正态分布中选择随机数,其均值接近于0且值接近0 Ex.-0.1到0.1.它被称为截断,因为你从正常分布切断尾巴.

tf.random_normal()平均值接近0的正态分布中选择随机数; 但是值可以稍微分开.防爆.-2到2

在练习(机器学习)中,您通常希望权重接近0.



3> 小智..:

tf.truncated_normal()的API文档将函数描述为:

从截断的正态分布输出随机值.

生成的值遵循具有指定平均值和标准偏差的正态分布,除了丢弃并重新选择幅度大于平均值2个标准偏差的值.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有