简述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的Flask框架下使用sqlalchemy库的简单教程
Apr 09 Python
Python回调函数用法实例详解
Jul 02 Python
python字符串连接方法分析
Apr 12 Python
Python Json模块中dumps、loads、dump、load函数介绍
May 15 Python
基于python绘制科赫雪花
Jun 22 Python
在Python中获取两数相除的商和余数方法
Nov 10 Python
python 字典的打印实现
Sep 26 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
Nov 19 Python
python如何获取apk的packagename和activity
Jan 10 Python
Python正则表达式如何匹配中文
May 27 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
利用Matlab绘制各类特殊图形的实例代码
Jul 16 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
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
PHP以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
php之static静态属性与静态方法实例分析
2015/07/30 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
[01:14]2014DOTA2展望TI 剑指西雅图newbee战队专访
2014/06/30 DOTA
Python写入CSV文件的方法
2015/07/08 Python
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
Python判断有效的数独算法示例
2019/02/23 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
python能开发游戏吗
2020/06/11 Python
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
美国眼镜网:GlassesUSA
2017/09/07 全球购物
草莓网官网:StrawberryNET
2019/08/21 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
后勤园长自我鉴定
2013/10/17 职场文书
自考毕业自我鉴定范文
2013/10/27 职场文书
物流管理专业应届生求职信
2013/11/21 职场文书
商务英语应届生自我鉴定
2013/12/08 职场文书
机电一体化自荐信
2013/12/10 职场文书
青春励志演讲稿
2014/04/29 职场文书
融资租赁计划书
2014/04/29 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
辩护词格式
2015/05/22 职场文书