简述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实现类的创建与使用方法示例
Jul 25 Python
Python reduce()函数的用法小结
Nov 15 Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 Python
Python实现正则表达式匹配任意的邮箱方法
Dec 20 Python
python实现全盘扫描搜索功能的方法
Feb 14 Python
浅谈python3.6的tkinter运行问题
Feb 22 Python
Python增强赋值和共享引用注意事项小结
May 28 Python
使用turtle绘制五角星、分形树
Oct 06 Python
python3 实现口罩抽签的功能
Mar 11 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
May 28 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
Oct 15 Python
python实现b站直播自动发送弹幕功能
Feb 20 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
第十三节 对象串行化 [13]
2006/10/09 PHP
利用PHP动态生成VRML网页
2006/10/09 PHP
实用函数4
2007/11/08 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
Javascript 陷阱 window全局对象
2008/11/26 Javascript
jQuery 获取URL参数的插件
2010/03/04 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
vue观察模式浅析
2018/09/25 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
对于Python的框架中一些会话程序的管理
2015/04/20 Python
python实现的AES双向对称加密解密与用法分析
2017/05/02 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
基于python绘制科赫雪花
2018/06/22 Python
Python格式化日期时间操作示例
2018/06/28 Python
python中字符串内置函数的用法总结
2018/09/13 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
python3 深浅copy对比详解
2019/08/12 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
python 写一个性能测试工具(一)
2020/10/24 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
一个C/C++编程面试题
2013/11/10 面试题
庆祝教师节活动方案
2014/01/31 职场文书
艺术教育实施方案
2014/05/03 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server