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

随机种子是什么?

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

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

随机种子的取值范围?

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

python random

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

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

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随机种子的作用_简述pythonpytorch 随机种子的实现相关推荐

  1. python随机密码生成以整数17为随机数种子_简述pythonpytorch 随机种子的实现

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

  2. python super()方法的作用_详解python的super()的作用和原理

    Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身,而在调用的时候则不必显式传递,系统会自动传递.uz0免费资源网 今天我们介绍的主角是s ...

  3. python随机森林筛选变量_变量重要性随机森林在R中是否有类似Python的rfpimp来分组共线变量...

    早上好 我在R(randomForest,caret)中的随机林实现中使用置换重要性对变量进行排序.所有变量都是连续的,结果是明确的.在 为了处理共线特性Terence Parr,Jeremy How ...

  4. python生成器和迭代器作用_浅谈Python中的生成器和迭代器

    迭代器 迭代器协议 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么返回一个异常来终止本次迭代.(只能往前走,不能往后退!) 迭代器对象 遵循了(实现了)迭代器协议的对象.(对象内 ...

  5. python数据包的作用_使用Python将登录数据包发送到Minecraft服务器不起作用

    我在Python中有以下脚本 . 它的作用是尝试连接到MineCraft服务器,首先发送'handshake',然后发送登录请求 . 协议规格可以在这里找到:http://wiki.vg/Protoc ...

  6. python中main的作用_浅析python 中__name__ = '__main__' 的作用

    很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...

  7. python中forward的作用_基于numpy的前馈神经网络(feedforward neural network)

    *** 这几天在上Andrew Ng教授开的Coursera系列课程Deep Learning,总觉得光是看视频和做作业还不够,还是得自己动手写写代码,亲自实现课程里提到的算法内容,于是便有了这篇博客 ...

  8. python对编写神经网络作用_神经网络(BP)算法Python实现及应用

    本文实例为大家分享了Python实现神经网络算法及应用的具体代码,供大家参考,具体内容如下 首先用Python实现简单地神经网络算法: import numpy as np # 定义tanh函数 de ...

  9. python转义引号的作用_在Jinja2中渲染时转义双引号

    我正在使用Jinja2使用Python3创建Golang代码.我需要在最终代码中将引号中的一些参数传递给函数,但Jinja2不会转义双引号.我的python代码类似于: list_s = ['a', ...

最新文章

  1. 13、Excutors 结合 ThreadFactory 自动给线程加上线程名
  2. linux 强制刷新文件,vim 如何刷新或重载reload 已打开的文件
  3. MySql技巧个人笔记
  4. seata-golang 一周年回顾
  5. vc6怎么看错误在哪_周杰伦超话第一!微博超话在哪进入签到?怎么看排名?不会来看!...
  6. Ethereum Bootstrap 以太坊本地私有链开发环境搭建
  7. LeetCode 773. 滑动谜题(BFS 地图状态转换的最短距离)
  8. 温故知新ASP.NET 2.0(C#)(3) - SiteMap(站点地图)
  9. 靠着零代码报表工具,转行报表开发后月薪超过3万
  10. Java技术简介及Tomcat部署
  11. sendrequest ajax数据返回,jquery ajax 还没有调用send()方法 返回的状态码XMLHttpRequest.status 是0 ,怎么解决?...
  12. socket简介 - 获取简单网页内容
  13. springboot毕业设计管理系统(带论文)
  14. 永中Office遭遇厄运
  15. 深度学习软件安装及环境配置(Win10)
  16. 干货丨绝地求生—PUBG游戏模型合集
  17. MS13-046特权提升漏洞(转)
  18. 新手做自媒体,最好掌握这4款视频制作软件
  19. selenium爬堆糖网壁纸
  20. 报错:ERROR yaml.scanner.ScannerError: while scanning a quoted sca 如何解决

热门文章

  1. Xcode中GUIT配置及GUIT库实现OpenGL简化使用
  2. 如何解决phpcms后台验证码不显示的问题
  3. 微信开发者工具常用快捷键大全
  4. 六.开发记录之实验室服务器LXD部署
  5. 引用指针变量p实现字符串连接函数strcat()的功能
  6. 即拼商城系统开发PHP源码小程序
  7. java表格中序号,word表格中怎么添加递增的序号
  8. Flask从0到1快速后台服务开发
  9. Word文件转PDF
  10. 【VScode】终端字体间距变大