PyTorch 通过 torch.Generator 类来操作随机数

我们通常不会手动实例化 torch.Generator, 当需要随机数时, PyTorch 会自动创建一个默认的 torch.Generator 实例

import torch# 设置随机数种子
torch.manual_seed(0)# 查看随机数种子 结果为 0
torch.initial_seed()# 获取默认的 Generator 实例
g_1 = torch.default_generator
# 通过实例调用 结果也为 0
g_1.initial_seed()

通过 torch.xxx 和 Generator 实例均可调用 manual_seed() 以及 initial_seed(), 前者相当于使用默认的 Generator 实例去调用相应方法

通常使用的函数 torch.manual_seed() 会作用到默认的 Generator 实例上

函数 torch.manual_seed() 会返回默认的 Generator 实例

g_2 = torch.manual_seed(0)# 结果为 True
g_1 is g_2

在使用需要随机数的函数时, 如果没有指定 Generator 实例, 则会使用默认的 Generator 实例, 可以通过关键字参数 generator 指定随机数生成器

# 使用默认的随机数生成器
torch.manual_seed(1)# 结果 tensor([0, 4, 2, 3, 1])
torch.randperm(5)# 手动创建随机数生成器
G = torch.Generator()
G.manual_seed(1)# 结果也为 tensor([0, 4, 2, 3, 1])
torch.randperm(5, generator=G)

Generator 实例会区分 CPU 与 GPU 两种设备, 默认为 CPU 类型

# 结果为 device(type='cpu')
G.device

torch.Generator 随机数生成器相关推荐

  1. Java中Math3 各种随机数生成器的使用(Random Generator)

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 文章目录 背景 python中numpy生成随机数 产生 ...

  2. C++ - 随机数生成器(random-number generator) 的 详解 及 代码

    随机数生成器(random-number generator) 的 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/ ...

  3. 开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器

    原文:[原创]开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器                本博客所有文章分类的总目录:http://www.cnblogs.com/asxiny ...

  4. UA STAT675 统计计算I 随机数生成1 随机数生成器的一般理论

    UA STAT675 统计计算I 随机数生成1 随机数生成器的一般理论 RNG的抽象表示 RNG的质量指标 RNG的统计检测 在统计计算中,从某个分布中进行采样通常分为两个步骤: 生成随机数z1,z2 ...

  5. boost基础——随机数生成器

    (1)所需头文件 #include <boost\random.hpp> 生成指定区间的服从均匀分布的随机数(整数) #include <ctime> // for time( ...

  6. 随机数生成器 java_Java中的随机数生成器

    随机数生成器 java Today we will look at how to generate a random number in Java. Sometimes we need to gene ...

  7. 高斯分布的随机数生成器

    高斯分布的随机数生成器 实现的过程是先查找相关高斯分布随机数在vivado实现的博客,先大概认识一下,然后到知网找相关的硕士论文,总结出最简单的高斯随机数生成的实现方法,在进行仿真验证. 在查阅相关论 ...

  8. Java 随机数生成器 Random SecureRandom 原理分析

    文章目录 java.util.Random java.Security.SecureRandom /dev/random 与 /dev/urandom 资料 Java 里提供了一些用于生成随机数的工具 ...

  9. C++11中随机数生成器(random)

    目录 1 随机数生成器的分类 2 随机数据引擎 2.1 线性同余法引擎 2.2 梅森旋转法引擎 2.3 滞后Fibonacci引擎 2.4 非确定随机生成器 2.5 默认随机数引擎 3 随机数适配器 ...

  10. linux 随机数原理,Linux随机数生成器的原理和缺陷.pdf

    第17卷.第10期 计算机技术与发展 vol.17No.10 2007年10月 COMPUTERTECHNOLOGYANDDEVELOPMENT Oct.2007 Linux随机数生成器的原理及缺陷 ...

最新文章

  1. 是时候改变自学编程方法了,这篇国外网友的分享被fast.ai创始人等点赞
  2. 西门子获首都机场18亿大单
  3. Burrow 服务的安装部署
  4. 操作系统04进程同步与通信
  5. HTML网页使用CDN的jquery.qrcode.min.js生成页面二维码(直接可以复制使用)
  6. 【C语言】统计数字字符的个数(字符组)
  7. 《A Tour of PostgreSQL Internals》学习笔记——进程间通信
  8. classcastexception异常_Java程序员必备:异常的十个关键知识点
  9. Java的日期格式化常用方法
  10. MySQL对分隔符的处理(一)
  11. k-d Tree及其Java实现
  12. Android MD5加密
  13. python pycharm 书籍_有什么Python学习的书籍和学习资源推荐?
  14. 三星手机性能测试软件,5部手机性能测试:红米垫底三星倒数第三 第一当之无愧...
  15. Python能不能只选择合并一个excel当中指定的sheet 当中指定的列呢?
  16. 月薪4万是一种什么样的感受?
  17. python for ArcGIS 绘制北京市板块地图
  18. go 源码工具解析-英文单复数变化 Inflection
  19. linux3.10.46源码下载,Ubuntu11.10下编译android源码4.0.3
  20. feign.codec.DecodeException 异常原因

热门文章

  1. 电动汽车结构原理基础知识
  2. LeetCode热门100之 无重复字符的最长子串
  3. NOIP2017提高成绩
  4. oracle数据泵PARALLEL,EXPDP的parallel参数
  5. rtorrent ubuntu端命令行种子下载器
  6. openbsd运行Linux应用程序,OpenBSD上的服务管理程序rcctl
  7. 一文了解AAAI国际会议–附: 各年论文连接
  8. 巧用 arp 命令 防p2p终结者的方法
  9. Unity笔记-29-ARPG游戏项目-13-打击感(卡肉)与僵直感
  10. 数据结构c语言版陈越,数据结构 陈越