首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >np.random.seed(1)与np.random.seed(0)的差异?

np.random.seed(1)与np.random.seed(0)的差异?
EN

Stack Overflow用户
提问于 2017-11-28 19:33:39
回答 1查看 5.5K关注 0票数 4

我在找一个网络。我发现这个话题https://iamtrask.github.io/2015/07/12/basic-python-network/

进展得很好,但我不明白这部分:

代码语言:javascript
复制
# seed random numbers to make calculation
# deterministic (just a good practice)

np.random.seed(1)

# initialize weights randomly with mean 0
syn0 = 2 * np.random.random((3, 1)) - 1

那么np.random.seed(1)是什么意思呢?为什么不是(0)?((1)的平均值是多少?),页码作者说“用平均值0随机初始化权重”。

代码语言:javascript
复制
syn0 = 2 * np.random.random((3, 1)) - 1

这对安的体重意味着什么?

EN

回答 1

Stack Overflow用户

发布于 2017-11-28 19:42:06

问题1:

出于实际的目的,没有区别,这只是一种方法,得到相同的随机数字,每次你运行你的程序。请随意阅读维基百科的更多细节:seed

问题2:

用零均值权值初始化你的神经网络是一个很好的实践,它通常表现出很好的收敛行为。查看此页面以获得更多详细信息:http://cs231n.github.io/neural-networks-2/#init

因此,我们仍然希望权重非常接近于零,但正如我们前面所指出的,不完全是零。作为一种解决方案,通常将神经元的权值初始化为小数,并将其称为对称性破坏。这个想法是,神经元在开始的时候都是随机的和唯一的,所以它们会计算不同的更新,并将自己整合成整个网络的不同部分。

在Quora线程中有更多关于这个主题的讨论:https://www.quora.com/Why-does-it-work-to-initialize-weights-of-a-deep-Neural-Network-to-zero-plus-some-noise-N-0-epsilon-and-not-anything-else

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47539524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档