关于随机种子seed()的一点理解
先上一段熟悉的代码:
import numpy as np
num=0
while(num<5):np.random.seed(1)print(np.random.random())num+=1print('-------------------------')num1=0
np.random.seed(2)
while(num1<5):print(np.random.random())num1+=1
运行结果:
0.417022004702574
0.417022004702574
0.417022004702574
0.417022004702574
0.417022004702574
---------------------
0.43599490214200376
0.025926231827891333
0.5496624778787091
0.4353223926182769
0.42036780208748903
众所周知,所谓随机数其实是伪随机数,所谓的‘伪’,意思是这些数其实是有规律的,只不过因为算法规律太复杂,很难看出来。
所谓巧妇难为无米之炊,再厉害的算法,没有一个初始值,它也不可能凭空造出一系列随机数来,诶,我们说的种子就是这个初始值。
random随机数是这样生成的:我们将这套复杂的算法(是叫随机数生成器吧)看成一个黑盒,把我们准备好的种子扔进去,它会返给你两个东西,一个是你想要的随机数,另一个是保证能生成下一个随机数的新的种子,把新的种子放进黑盒,又得到一个新的随机数和一个新的种子,从此在生成随机数的路上越走越远。
好了,回头看看我们的代码:
第一段代码把对种子的设置放在了循环里面,每次执行循环都旗帜鲜明地告诉黑盒:“我的种子是1”。那么很显然:同一个黑盒,同一个种子,自然得到的是同一个随机数。
第二段代码把对种子的设置放在了循环外面,他只在第一次循环的时候明确地告诉黑盒:“我的种子是2”。那么也很显然:从第二次循环开始,黑盒用的就是自己生成的新种子了。
多说一句:因为黑盒是始终如一的,所以只要你没改变种子,那么你得到的随机数就不会改变。
没有特殊需求的话,还是老老实实地用Python自动选择的种子吧,省心又省力。
PS:不同于大佬小姥们的谦逊,我真的是地地道道的新手,所以,如果有什么错误,还请见谅,谢谢。
关于随机种子seed()的一点理解相关推荐
- 随机种子 seed()到底是怎么回事。
让我们先来看一段代码,熟悉一下seed()的使用: import numpy as npnum = 0 while (num < 5):np.random.seed(1)print(np.ran ...
- python编程中,各种随机种子seed设置总结
python随机种子seed的作用(强化学习常用到)_汀.的博客-CSDN博客先上代码import mathimport gymfrom gym import spaces, loggerfrom g ...
- Pytorch分布式训练/多卡训练(二) —— Data Parallel并行(DDP)(2.2)(代码示例)(BN同步主卡保存梯度累加多卡测试inference随机种子seed)
DDP的使用非常简单,因为它不需要修改你网络的配置.其精髓只有一句话 model = DistributedDataPrallel(model, device_ids=[local_rank], ou ...
- 随机种子 seed()
先来看一段代码,熟悉一下seed()的使用: import numpy as npnum = 0 while (num < 5):np.random.seed(1)print(np.random ...
- tensorflow随机种子seed
随机种子seed起到固定初始值的作用 import tensorflow as tf# tf.set_random_seed(1) A1 = tf.random_uniform([1]) A2 = t ...
- python随机种子seed的作用(强化学习常用到)
先上代码 import math import gym from gym import spaces, logger from gym.utils import seeding import nump ...
- 如何理解“伪随机”以及“随机种子”
"真随机"与"伪随机" 真随机:就是我们传统意义上理解的"随机",随机事件如今天是否下雨,抛硬币的正反面,家门口的十字路口今天发生车祸等等. ...
- linux 系统时间date vcs根据时间产生随机种子
前言 2023.3.20 首先介绍时间,再介绍如何根据时间产生随机种子 一.date date:用来显示或设定系统的日期与时间 使用方法:date [OPTION]... [+FORMAT] 1.OP ...
- 以我的世界视角来理解seed的随机种子
以我的世界视角理解seed随机种子 你玩过我的世界吗? 如果你的回答是玩过,那么理解seed随机种子就十分简单了 其实seed随机种子就像我的世界生成世界的种子: randn,rand,uniform ...
最新文章
- 二级菜单从mysql中取_MyEclipes中如何如何让通过读取Mysql中的数据来实现二级菜单分类...
- 在C#里调用C++的dll时需要注意的一些问题转
- C#利用反射机制,获取实例的属性和属性值
- Spring.NET学习笔记22——整合WCF(应用篇) Level 200
- html 文本 多列显示,CSS3文本,字体和多列
- Shell脚本 条件
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_13、jar包方式运行web项目文件上传和访问...
- kuangbin数学训练1
- 解决IDEA 打开Springboot项目提示 Unmapped Spring configuration files found.
- Shopee平台不活跃商品清理规则更新
- 关于我的 “二进制部署 kubernetes 集群” 的体验
- 【Excel VBA】一键取消excel中所有隐藏sheet
- web绿色服务器单文件,Web个人临时共享服务器
- 联想笔记本系统还原要如何操作
- 然而,随着下属人数的增多,下属各自 开始形成自己的权力主体。
- android手机电话铃声设置,安卓怎么设置铃声 安卓手机铃声设置教程
- python 条形图填充疏密_Python数据分析 4:图表绘制工具Matplotlib
- [ Linux ] 查看并修改时区
- Git submodule 采坑
- 【Python机器学习及实践】进阶篇:模型实用技巧(特征提升)
热门文章
- h5画三角形_如何利用css或html5画出一个三角形?两种不同的制作三角形方法(代码实例)...
- 输入在第一行中给出一个正整数n(1)。第二行输入n个整数,用空格分开。在一行中输出最大值及最大值的最小下标,中间用一个空格分开。
- (OS 10038)在一个非套接字上尝试了一个操作 的解决办法
- 为什么Lisp语言如此先进?(译文)
- Git 修改 commit author
- 给夜神模拟器设置好了代理之后,无法上网了,在设置代理之前都能上网的
- Project中最常用的注意点
- k8s对外攻击面总结
- css实现单边斜切效果
- CC2530(SPI)驱动FLASH芯片W25Qxx