简述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中的多进程
Nov 06 Python
Python中取整的几种方法小结
Jan 06 Python
Django model反向关联名称的方法
Dec 15 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
使用Python进行中文繁简转换的实现代码
Oct 18 Python
python多进程重复加载的解决方式
Dec 13 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
基于Python绘制美观动态圆环图、饼图
Jun 03 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
协程Python 中实现多任务耗资源最小的方式
Oct 19 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
Aug 14 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
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
第六节 访问属性和方法 [6]
2006/10/09 PHP
php面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
jQuery textarea的长度进行验证
2009/05/06 Javascript
php与js的区别是什么
2013/08/05 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
2019/04/09 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
python解析html开发库pyquery使用方法
2014/02/07 Python
windows下python安装小白入门教程
2018/09/18 Python
python3的输入方式及多组输入方法
2018/10/17 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
用HTML5制作烟火效果的教程
2015/05/12 HTML / CSS
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
优秀学生自我鉴定范例
2013/12/18 职场文书
机械工程及其自动化专业求职信
2014/08/08 职场文书
公司年底活动方案
2014/08/17 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
公司领导班子对照检查存在问题整改措施
2014/10/02 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
加班费申请报告
2015/05/15 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书