简述python&pytorch 随机种子的实现


Posted in Python onOctober 07, 2020

随机数广泛应用在科学研究, 但是计算机无法产生真正的随机数, 一般成为伪随机数. 它的产生过程: 给定一个随机种子(一个正整数), 根据随机算法和种子产生随机序列. 给定相同的随机种子, 计算机产生的随机数列是一样的(这也许是伪随机的原因).

随机种子是什么?

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

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

随机种子的取值范围?

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

python random

下面以python的random函数为例, 做了一个测试.

简述python&pytorch 随机种子的实现

当用户未指定随机种子, 系统默认随机生成, 一般与系统当前时间有关.用户指定随机种子后, 使用随机函数产生的随机数可以复现.种子确定后, 每次使用随机函数相当于从随机序列去获取随机数, 每次获取的随机数是不同的.

pytorch

使用pytorch复现效果时, 总是无法做到完全的复现. 同一份代码运行两次, 有时结果差异很大. 这是由于算法中的随机性导致的. 要想每次获得的结果一致, 必须固定住随机种子. 首先, 我们需要找到算法在哪里使用了随机性, 再相应的固定住随机种子.

def seed_torch():
	seed = 1024 # 用户设定
 # seed = int(time.time()*256)
 # 保存随机种子
 with open('seed.txt', 'w') as f:
  f.write(str(seed))
 random.seed(seed)
 os.environ['PYTHONHASHSEED'] = str(seed)
 np.random.seed(seed)
 torch.manual_seed(seed)
 torch.cuda.manual_seed(seed)
 torch.cuda.manual_seed_all(seed)
 torch.backends.cudnn.benchmark = False
 torch.backends.cudnn.deterministic = True
seed_torch()

上面的代码固定了pytorch常用的随机种子, 但是如果你在预处理中涉及了随机性, 也需要固定住.

为了复现结果, 我们固定住了随机种子. 但pytorch训练模型时, 不同的随机种子会产生不同的结果. 每次使用固定的随机种子, 可能错失好的结果. 为此, 我们可以每次使用不一样的随机种子, 并保存下来

 到此这篇关于简述python&pytorch 随机种子的实现的文章就介绍到这了,更多相关pytorch 随机种子内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python使用scrapy采集数据过程中放回下载过大页面的方法
Apr 08 Python
详解Python中的日志模块logging
Jun 19 Python
Python判断两个对象相等的原理
Dec 12 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
Jan 15 Python
解决Python的str强转int时遇到的问题
Apr 09 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
Jul 11 Python
Python Web编程之WSGI协议简介
Jul 18 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
Mar 02 Python
python mysql中in参数化说明
Jun 05 Python
python 实现压缩和解压缩的示例
Sep 22 Python
Python3 用matplotlib绘制sigmoid函数的案例
Dec 11 Python
详解numpy1.19.4与python3.9版本冲突解决
Dec 15 Python
详解基于python的全局与局部序列比对的实现(DNA)
Oct 07 #Python
python单元测试框架pytest的使用示例
Oct 07 #Python
利用python批量爬取百度任意类别的图片的实现方法
Oct 07 #Python
Python colormap库的安装和使用详情
Oct 06 #Python
Django-Scrapy生成后端json接口的方法示例
Oct 06 #Python
Python3如何使用range函数替代xrange函数
Oct 05 #Python
Python threading模块condition原理及运行流程详解
Oct 05 #Python
You might like
暴雪前总裁遗憾:没尽早追赶Dota 取消星际争霸幽灵
2020/03/08 星际争霸
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
PHP实现的简单日历类
2014/11/29 PHP
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
移动节点的jquery代码
2014/01/13 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
JavaScript递归算法生成树形菜单
2017/08/15 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
vue.js计算属性computed用法实例分析
2018/07/06 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
vue实现拖拽效果
2019/12/23 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
Python简单获取自身外网IP的方法
2016/09/18 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
自我评价的写作规则
2014/01/06 职场文书
个人总结与自我评价
2014/09/18 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
县人大领导班子四风对照检查材料思想汇报
2014/10/09 职场文书
作风建设年度心得体会
2014/10/29 职场文书
公司处罚决定书
2015/06/24 职场文书
新人入职感言
2015/07/31 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis
室外天线与收音机天线杆接合方法
2022/04/05 无线电