随机种子是什么?

随机种子是针对 随机方法 而言的。

随机方法:常见的随机方法有 生成随机数,以及其他的像 随机排序 之类的,后者本质上也是基于生成随机数来实现的。在深度学习中,比较常用的随机方法的应用有:网络的随机初始化,训练集的随机打乱等。

关于python中的随机种子——random_state

举个例子,如果我们简单调用 random.random() 来生成随机数,那么每一次生成的数都是随机的。但是,当我们预先使用 random.seed(x) 设定好随机种子,基于这个种子来执行随机算法,这个时候我们得到的随机数序列是相同的【实际上,所有的随机算法都需要提供随机种子,如果我们没有手动进行显式设置,系统则默认 根据时间 来选择这个值,此时每次生成的随机数因时间差异而不同】。

随机种子的一些具体特性

① 随机种子的取值范围?

可以是任意数字,如10,1000

② 随机种子的作用范围

np.random.seed(0)

print(np.random.rand(3))

print(np.random.rand(3))

输出:

[0.5488135  0.71518937 0.60276338]

[0.54488318 0.4236548  0.64589411]

再次运行程序,会输出同一组随机数:

[0.5488135  0.71518937 0.60276338]

[0.54488318 0.4236548  0.64589411]

想要在同一个程序中产生同一组随机数,需要在下一个函数设置一个相同的随机种子

np.random.seed(0)

print(np.random.rand(3))

np.random.seed(0)

print(np.random.rand(3))

输出:

[0.5488135  0.71518937 0.60276338]

[0.5488135  0.71518937 0.60276338]

思考

1、使用了随机种子来固定输出,那还能算是随机吗?

2、计算机底层是如何实现生成随机数的?

虽然计算机很擅长做精确计算,但是它们处理随机事件时非常不靠谱。

随机数是一个难题。大多数随机数算法都努力创造一种 呈均匀分布且难以预测的 数据序列,但是在算法初始化阶段都需要提供随机数“种子”(random seed)。而完全相同的种子每次将产生相同的“随机”数序列,因此 用系统时间作为数序列生成的起点,会让程序运行的时候更具有随机性。

为什么要用随机种子?

基于随机种子来实现代码中的随机方法,能够 保证多次运行此段代码能够得到完全一样的结果,即 保证结果的 可复现性,这样 别人跑你的代码的时候也能够很好地复现出你的结果。

PyTorch中随机种子的设置

参考:Pytorch设置随机数种子,使训练结果可复现。

在使用 PyTorch 时,如果希望通过设置随机数种子,在 GPU 或 CPU 上固定每一次的训练结果,则需要在程序执行的开始处添加以下代码:

def setup_seed(seed):

torch.manual_seed(seed)

torch.cuda.manual_seed_all(seed)

np.random.seed(seed)

random.seed(seed)

torch.backends.cudnn.deterministic = True

# 设置随机数种子

setup_seed(20)

# 预处理数据以及训练模型

# ...

# ...

随机数种子seed确定时,模型的训练结果将始终保持一致。(加v 一起学习 hailou1666)

python中随机种子怎么用_Python 随机种子介绍,PyTorch 中随机种子的设置应用相关推荐

  1. python让用户输入一个整数_PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。...

    Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...

  2. python中text函数的语法_Python语法大全(持续更新中ing)

    1.type()函数可以返回任何Python定义的数据类型. Python提供了一些数字类型转换函数:int().long().float().complex().整数.长整数和浮点数可以通过comp ...

  3. 简单介绍pytorch中分布式训练DDP使用 (结合实例,快速入门)

    文章目录 DDP原理 pytorch中DDP使用 相关的概念 使用流程 如何启动 torch.distributed.launch spawn调用方式 针对实例voxceleb_trainer多卡介绍 ...

  4. python判断点在矩形内_Python测试点是否在矩形中

    我是python的新手,仍然学习绳索??,但是我希望有更多经验的人可以帮助我. 我正在尝试编写以下Python脚本: >创造四个点 >创建四个矩形 >检查每个点是否在任何矩形中,然后 ...

  5. python中创建集合的语句_Python 集合(set) 介绍

    集合 set 集合是可变的容器 集合内的数据对象都是唯一的(不能重复多次的) 集合是无序的存储结构,集合中的数据没有先后关系 集合内的元素必须是不可变对象 集合是可迭代对象(可以用for等遍历) 集合 ...

  6. python 在主线程开线程_Python开启线程,在函数中开线程的实例

    逻辑处理上分成了多个模块,为了提高效率,前一个模块处理完调用后一个模块操作时使用多线程 我这里遇到的情形是前面取数据后面存到mysql,发现单线程效率很低,改为取数据后开线程存到mysql 开启线程之 ...

  7. python 调用class不指定函数_python调用另一个.py中的类或函数

    同一文件夹下的调用 1.调用函数 A.py文件如下: def add(x,y): print('和为:%d'%(x+y)) 在B.py文件中调用A.py的add函数如下: import A A.add ...

  8. python找到字符中空格所在的位置_Python 查找字符在字符串中的位置示例效果

    Python 查找字符在字符串中的位置实例 下面为大家分享一篇Python 查找字符在字符串中的位置实例,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 str_1='wo shi yi zh ...

  9. python去除图片上的文字_Python图像处理之识别图像中的文字(实例讲解)

    ①安装PIL:pip install Pillow(之前的博客中有写过) ②安装pytesser3:pip install pytesser3 ③安装pytesseract:pip install p ...

  10. python中x 1什么意思_Python:A [1:]中x的含义是什么?

    这是 array slice语法.看到这个问题: Explain Python's slice notation 对于列表my_list对象,例如[1,2,"foo"," ...

最新文章

  1. 树莓派学习笔记(6):让Raspbian支持中文、禁用休眠
  2. rest项目的基础返回类设计
  3. 深入理解编译注解(四)常用接口介绍
  4. 机房运维很枯燥?来看看中国银行数据中心基础设施可视化运维管理
  5. 蓝桥杯-打印十字图-java
  6. 创建存储过程向表中循环加入数据
  7. python解析网页所有可点击_Python 解析网页
  8. 谷歌 Daydream VR 开发工具
  9. 广东电网公司大数据平台初步建成
  10. devc 能优化吗_Devc 、一元多项式的加法、减法、乘法的实现 【问题描述】 设有 联合开发网 - pudn.com...
  11. WebService入门
  12. _stdcall的作用
  13. css3中transform:translateY之后文字模糊的原因
  14. C# 正态分布图 标准偏差 STDEV 概率密度函数 NORM.DIST
  15. Python - global 跨函数参数传递
  16. python怎么打开h5文件_python中利用h5py模块读取h5文件中的主键方法
  17. 目前网页制作的基本语言html,第二讲网页制作基本语言HTML”.ppt
  18. 类360极速浏览器官网html
  19. Java 生成各种 PDF 实战方案(图片、模板、表格)
  20. 属于 PingCAP 用户和开发者的 2022 年度记忆

热门文章

  1. 搭建DNS服务器与域名和IP绑定
  2. iOS 版本更新提示、新特性启动页面思路 —— HERO博客
  3. 16进制 转RGB颜色
  4. 编译内核模块生成ko驱动文件
  5. Collection,泛型
  6. hFE和hfe有什么不同?
  7. 笔记:Linux环境C++语言复习(4)
  8. 申请专利需要哪些资料
  9. matlab 样条工具箱,Matlab 样条工具箱(Spline ToolBox) | 学步园
  10. python: 从函数了解到装饰器