python中随机种子怎么用_Python 随机种子介绍,PyTorch 中随机种子的设置应用
随机种子是什么?
随机种子是针对 随机方法 而言的。
随机方法:常见的随机方法有 生成随机数,以及其他的像 随机排序 之类的,后者本质上也是基于生成随机数来实现的。在深度学习中,比较常用的随机方法的应用有:网络的随机初始化,训练集的随机打乱等。
关于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 中随机种子的设置应用相关推荐
- python让用户输入一个整数_PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。...
Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...
- python中text函数的语法_Python语法大全(持续更新中ing)
1.type()函数可以返回任何Python定义的数据类型. Python提供了一些数字类型转换函数:int().long().float().complex().整数.长整数和浮点数可以通过comp ...
- 简单介绍pytorch中分布式训练DDP使用 (结合实例,快速入门)
文章目录 DDP原理 pytorch中DDP使用 相关的概念 使用流程 如何启动 torch.distributed.launch spawn调用方式 针对实例voxceleb_trainer多卡介绍 ...
- python判断点在矩形内_Python测试点是否在矩形中
我是python的新手,仍然学习绳索??,但是我希望有更多经验的人可以帮助我. 我正在尝试编写以下Python脚本: >创造四个点 >创建四个矩形 >检查每个点是否在任何矩形中,然后 ...
- python中创建集合的语句_Python 集合(set) 介绍
集合 set 集合是可变的容器 集合内的数据对象都是唯一的(不能重复多次的) 集合是无序的存储结构,集合中的数据没有先后关系 集合内的元素必须是不可变对象 集合是可迭代对象(可以用for等遍历) 集合 ...
- python 在主线程开线程_Python开启线程,在函数中开线程的实例
逻辑处理上分成了多个模块,为了提高效率,前一个模块处理完调用后一个模块操作时使用多线程 我这里遇到的情形是前面取数据后面存到mysql,发现单线程效率很低,改为取数据后开线程存到mysql 开启线程之 ...
- python 调用class不指定函数_python调用另一个.py中的类或函数
同一文件夹下的调用 1.调用函数 A.py文件如下: def add(x,y): print('和为:%d'%(x+y)) 在B.py文件中调用A.py的add函数如下: import A A.add ...
- python找到字符中空格所在的位置_Python 查找字符在字符串中的位置示例效果
Python 查找字符在字符串中的位置实例 下面为大家分享一篇Python 查找字符在字符串中的位置实例,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 str_1='wo shi yi zh ...
- python去除图片上的文字_Python图像处理之识别图像中的文字(实例讲解)
①安装PIL:pip install Pillow(之前的博客中有写过) ②安装pytesser3:pip install pytesser3 ③安装pytesseract:pip install p ...
- python中x 1什么意思_Python:A [1:]中x的含义是什么?
这是 array slice语法.看到这个问题: Explain Python's slice notation 对于列表my_list对象,例如[1,2,"foo"," ...
最新文章
- 树莓派学习笔记(6):让Raspbian支持中文、禁用休眠
- rest项目的基础返回类设计
- 深入理解编译注解(四)常用接口介绍
- 机房运维很枯燥?来看看中国银行数据中心基础设施可视化运维管理
- 蓝桥杯-打印十字图-java
- 创建存储过程向表中循环加入数据
- python解析网页所有可点击_Python 解析网页
- 谷歌 Daydream VR 开发工具
- 广东电网公司大数据平台初步建成
- devc 能优化吗_Devc 、一元多项式的加法、减法、乘法的实现
【问题描述】
设有 联合开发网 - pudn.com...
- WebService入门
- _stdcall的作用
- css3中transform:translateY之后文字模糊的原因
- C# 正态分布图 标准偏差 STDEV 概率密度函数 NORM.DIST
- Python - global 跨函数参数传递
- python怎么打开h5文件_python中利用h5py模块读取h5文件中的主键方法
- 目前网页制作的基本语言html,第二讲网页制作基本语言HTML”.ppt
- 类360极速浏览器官网html
- Java 生成各种 PDF 实战方案(图片、模板、表格)
- 属于 PingCAP 用户和开发者的 2022 年度记忆