当前位置: 首页 > article >正文

torch numpy seed使用方法

1

import numpy as np
np.random.seed(500)
np.random.rand(5)
array([0.69367953, 0.06171699, 0.6666116 , 0.55920894, 0.08511062])
import torch
torch.manual_seed(500)
torch.rand(5)

为了能够复现数据,我们可以使用seed 来控制生成的随机数。设置seed数据来设定指定的随机数列,每次调用 随机数生成函数 ,就会从随机数列种读取数据,所以重复运行相同的随机数生成函数,得到的值并不相同。

2

torch.Generator().manual_seed(seed) 与直接调用 torch.manual_seed(seed) 的主要区别在于作用域粒度上的不同。

torch.manual_seed(seed):

  • 全局设置:调用 torch.manual_seed(seed) 会影响 PyTorch 中所有后续的随机数生成操作,且影响的是全局的随机数生成器。这意味着,无论是CPU还是GPU上的随机操作,都会使用这个种子生成随机数。
  • 适用于所有随机数生成器:它会影响 PyTorch 中所有使用默认生成器的操作。例如,创建张量时使用 torch.randn() 或其他类似的随机生成函数时,它们都会受到这个种子的影响。

torch.Generator().manual_seed(seed):

  • 局部设置:调用 torch.Generator().manual_seed(seed) 会创建一个新的 torch.Generator 对象,并将种子应用到该对象。这个生成器仅对通过该生成器产生的随机数起作用,而不会影响全局默认的随机数生成器。
  • 可用于多个生成器:通过显式创建和设置 Generator 对象,你可以为不同的操作或任务创建多个独立的随机数生成器,每个生成器可以拥有不同的种子。这在需要对不同的计算操作保持独立的随机数生成时非常有用。

区别总结:

  • 全局 vs 局部

    • torch.manual_seed(seed):影响全局的默认随机数生成器。
    • torch.Generator().manual_seed(seed):创建并影响一个独立的随机数生成器,不会影响全局状态。
  • 多重生成器支持

    • 如果你希望在不同的操作中使用不同的随机数生成器并控制它们的种子,可以使用 torch.Generator().manual_seed(seed)

示例:

# 全局种子设置
torch.manual_seed(42)  # 所有后续操作都会基于种子42生成

# 使用独立的生成器
gen = torch.Generator()
gen.manual_seed(42)  # 这个生成器的随机数会基于种子42,但不会影响全局设置
random_tensor = torch.randn(3, 3, generator=gen)

在这个示例中,gen 是一个独立的随机数生成器,它的行为与全局设置无关,适用于需要多个不同随机生成器的场景。


http://www.kler.cn/a/529140.html

相关文章:

  • LeGO LOAM坐标系问题的自我思考
  • 吴晓波 历代经济变革得失@简明“中国经济史” - 读书笔记
  • Contrastive Imitation Learning
  • C++范围for和auto关键字
  • 2848、与车相交的点
  • 01.01、判定字符是否唯一
  • Easy系列PLC尺寸测量功能块(激光微距应用)
  • 2007-2019年各省科学技术支出数据
  • A4988一款常用的步进电机驱动芯片
  • 项目架构调整,切换版本并发布到中央仓库
  • Java篇之继承
  • Flink报错Caused by: java.io.FileNotFoundException: /home/wc.txt
  • Ubuntu16.04编译安装Cartographer 1.0版本
  • NoteGen:记录、写作与AI融合的跨端笔记应用
  • Java开发vscode环境搭建(二)-项目启动补充
  • XML DOM 获取节点值
  • S4 HANA给科目分配允许记账的税码
  • FLTK - FLTK1.4.1 - demo - arc
  • 【愚公系列】《循序渐进Vue.js 3.x前端开发实践》042-Vite工具入门
  • Python之Excel操作 - 读取数据
  • neo4j初识
  • ASP.NET Core自定义 MIME 类型配置
  • 415.字符串相加
  • [SAP ABAP] ALV报表练习3
  • 跨组织环境下 MQTT 桥接架构的评估
  • mac安装wireshark