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 随机种子介绍,PyTorch 中随机种子的设置应用
随机种子是什么? 随机种子是针对 随机方法 而言的. 随机方法:常见的随机方法有 生成随机数,以及其他的像 随机排序 之类的,后者本质上也是基于生成随机数来实现的.在深度学习中,比较常用的随机方法的应 ...
- Python 随机种子介绍,PyTorch 中随机种子的设置与应用
什么是随机种子? 随机种子是针对 随机方法 而言的. 随机方法:常见的随机方法有 生成随机数,以及其他的像 随机排序 之类的,后者本质上也是 基于生成随机数来实现的.在深度学习中,比较常用的随机方法的 ...
- python xlrd模块下载_python xlrd模块介绍
转载自:http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html 一.安装xlrd模块 到python官网下载 二.使用介绍 1.导入 ...
- python有哪些码_Python字节码介绍
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 了解Python字节码是什么,Python如何使用它来执行代码,以及了解它可以帮我们干什么. 如果你曾经编 ...
- python 数据框缺失值_Python:处理数据框中的缺失值
python 数据框缺失值 介绍 (Introduction) In the last article we went through on how to find the missing value ...
- 简单介绍pytorch中分布式训练DDP使用 (结合实例,快速入门)
文章目录 DDP原理 pytorch中DDP使用 相关的概念 使用流程 如何启动 torch.distributed.launch spawn调用方式 针对实例voxceleb_trainer多卡介绍 ...
- php如何随机显示图片,php中随机显示图片的函数代码_php
/********************************************** * Filename : img.php * Author : freemouse http://www ...
- python的threading库_python标准库介绍——31 threading 模块详解
threading 模块 (可选) ``threading`` 模块为线程提供了一个高级接口, 如 [Example 3-1 #eg-3-1] 所示. 它源自 Java 的线程实现. 和低级的 ``t ...
- random是python标准库吗_python标准库介绍——27 random 模块详解
==random 模块== "Anyone who considers arithmetical methods of producing random digits is, of cour ...
最新文章
- Javascript绘图
- php字符串类型讲解
- 数据录入工作,使用VBA
- 软考高项之进度管理——攻坚记忆
- swift 项目_如何对iOS项目进行静态分析
- C++Pascal‘s Triangle杨辉三角的实现算法
- 黑科技揭秘:如何通过阿里云超算,使得汽车仿真效率提升25%
- 网络电话全民亲情祝福 中秋团圆新方式
- redis数据类型list总结
- 简单的RPC java实现
- 时间的正则表达式验证
- thinkserver TS250安装centos7.5经验
- Hibernate入门第一讲——Hibernate框架的快速入门
- 【Proteus仿真】基于STC15单片机简易数码管定时器时钟
- Spring中Junit测试启动报错class path resource [xxx.xml] cannot be opened because it does not exist
- 【数据结构与算法】- 排序(算法)
- 使用Nginx Upstream 部署 OpenERP
- 解决直接读取webapp下的文件404问题
- 阮一峰:值得分享给开发者的 Authing 身份云
- 家用计算机cpu,家用电脑低功耗CPU推荐
热门文章
- js利用tab键切换当前页面_js小技巧:tab页切换
- PRML第八章之图模型
- Create and Drop Database, Create, Alter and Drop Tables, Select, Insert, Update, Delete Commands
- 超详细的MySQL入门教程(一)
- Cadence软件包工具及功能介绍
- 编译原理(第3版-王生原)课后习题答案-第三章
- MATLAB卷积运算解释(conv、conv2、convn)
- 十天学习Unity3D脚本(一)九个回调
- 如何利用网站源码快速建站
- arduinohanshu_Arduino基础-函数 (范例)