随机产生函数种子seed、numpy.random.seed()、tf.set_random_seed()、tf.random_uniform()、tf.random_normal()学习

随机产生函数种子seed、numpy.random.seed()、tf.set_random_seed()、tf.random_uniform()、tf.random_normal()学习

神经网络代码中,随机产生函数几乎都会出现在最开头的位置,足以说明其重要性。

我们得保证,每次代码产生的随机数是相同的,要不然每次运行出的数据都是不同的,不利于我们的研究分析

1.种子是什么

了解种子是什么,首先得了解随机数产生机制。

在numpy中,seed函数的作用为 Seed the random number generator(为随机生成函数生成种子),而seed函数中的参数seed可以理解成为了获取每次产生随机数时的 “开始位置”的数值。

我们可以把seed看作一个映射函数的输入,输入不同的值,都会有唯一对应的数值( “开始位置”)。

至于随机数,是一些顺序已经固定的序列。

通过seed得到的 “开始位置”,就能在固定随机序列中找到位置,进行输出。

至于tensorflow中的seed和numpy相似,可以进行类比。

2.numpy.random.seed() 函数

random_sample() :  Uniformly distributed floats over [0, 1) ( 随机产生 [0,1)之间的均匀分布浮点数)

random() : Alias for random_sample() (random_sample 的别称)

可以看到random_sample() 和 random() 其实是同一个函数,都是随机生成[0,1)之间的均匀分布浮点数

seed() 函数上面提到,是对随机生成函数指定随机 “开始位置”

 

接下来,我们进行具体实验,来看看numpy.random.seed()的具体效果

import numpy as np

#numpy seed只限制一层

for k in range(3):
    np.random.seed(123)
    for i in range(5):
        print( np.random.random() )
    print('\n')

for k in range(3):
    for i in range(5):
        np.random.seed(123)
        print( np.random.random() )
    print('\n')

np.random.seed(123)
for k in range(
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值