简述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中的decode()方法的使用
May 18 Python
Python中的if、else、elif语句用法简明讲解
Mar 11 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
Aug 05 Python
python print 按逗号或空格分隔的方法
May 02 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
python简单贪吃蛇开发
Jan 28 Python
ipad上运行python的方法步骤
Oct 12 Python
Python模块 _winreg操作注册表
Feb 05 Python
python 轮询执行某函数的2种方式
May 03 Python
python爬虫中PhantomJS加载页面的实例方法
Nov 12 Python
python中使用asyncio实现异步IO实例分析
Feb 26 Python
python基础之//、/与%的区别详解
Jun 10 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
深入file_get_contents与curl函数的详解
2013/06/25 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
React组件对子组件children进行加强的方法
2019/06/23 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
详解用python写一个抽奖程序
2019/05/10 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
详解python metaclass(元类)
2020/08/13 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
优秀老师事迹材料
2014/02/05 职场文书
客服专员岗位职责
2014/02/28 职场文书
运动会广播稿100字
2014/09/14 职场文书
大学军训的体会
2014/11/08 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
教师远程培训心得体会
2016/01/09 职场文书