返回顶部
首页 > 资讯 > 后端开发 > Python >PyTorch中torch.manual_seed()的用法实例详解
  • 491
分享到

PyTorch中torch.manual_seed()的用法实例详解

2024-04-02 19:04:59 491人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录一、torch.manual_seed(seed) 介绍torch.manual_seed(seed) 功能描述语法参数返回二、类似函数的功能三、实例实例 1 :不设随机种子,生

一、torch.manual_seed(seed) 介绍

torch.manual_seed(seed) 功能描述

设置 CPU 生成随机数的 种子 ,方便下次复现实验结果。

为 CPU 设置 种子 用于生成随机数,以使得结果是确定的。

当你设置一个随机种子时,接下来的随机算法生成数根据当前的随机种子按照一定规律生成。
随机种子作用域是在设置时到下一次设置时。要想重复实验结果,设置同样随机种子即可。

语法

torch.manual_seed(seed) → torch._C.Generator

参数

seed,int类型,是种子 – CPU生成随机数的种子。取值范围为 [-0x8000000000000000, 0xffffffffffffffff] ,十进制是 [-9223372036854775808, 18446744073709551615] ,超出该范围将触发 RuntimeError 报错。

返回

返回一个torch.Generator对象。

二、类似函数的功能

为CPU中设置种子,生成随机数:

torch.manual_seed(number)

为特定GPU设置种子,生成随机数:

torch.cuda.manual_seed(number)

为所有GPU设置种子,生成随机数:

# 如果使用多个GPU,应该使用torch.cuda.manual_seed_all()为所有的GPU设置种子。
torch.cuda.manual_seed_all(number)

使用原因 :

在需要生成随机数据的实验中,每次实验都需要生成数据。设置随机种子是为了确保每次生成固定的随机数,这就使得每次实验结果显示一致了,有利于实验的比较和改进。使得每次运行该 .py 文件时生成的随机数相同。

三、实例

实例 1 :不设随机种子,生成随机数

# test.py
import torch
print(torch.rand(1)) # 返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数

每次运行test.py的输出结果都不相同:

tensor([0.4351])

tensor([0.3651])

tensor([0.7465])

实例 2 :设置随机种子,使得每次运行代码生成的随机数都一样

# test.py
import torch
# 设置随机种子
torch.manual_seed(0)
# 生成随机数
print(torch.rand(1)) # 返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数

每次运行 test.py 的输出结果都是一样:

tensor([0.4963])

实例 3 :不同的随机种子生成不同的值

改变随机种子的值,设为 1 :

# test.py
import torch
torch.manual_seed(1)
print(torch.rand(1)) # 返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数

每次运行 test.py,输出结果都是:

tensor([0.7576])

改变随机种子的值,设为 5 :

# test.py
import torch
torch.manual_seed(5)
print(torch.rand(1)) # 返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数

每次运行 test.py,输出结果都是:

tensor([0.8303])

可见不同的随机种子能够生成不同的随机数。

但只要随机种子一样,每次运行代码都会生成该种子下的随机数。

实例 4 :设置随机种子后,是每次运行test.py文件的输出结果都一样,而不是每次随机函数生成的结果一样
# test.py
import torch
torch.manual_seed(0)
print(torch.rand(1))
print(torch.rand(1))

输出结果:

tensor([0.4963])
tensor([0.7682])

可以看到两次打印 torch.rand(1) 函数生成的结果是不一样的,但如果你再运行test.py,还是会打印:

tensor([0.4963])
tensor([0.7682])

实例 5 :如果你就是想要每次运行随机函数生成的结果都一样,那你可以在每个随机函数前都设置一模一样的随机种子

# test.py
import torch
torch.manual_seed(0)
print(torch.rand(1))
torch.manual_seed(0)
print(torch.rand(1))

输出结果:

tensor([0.4963])
tensor([0.4963])

参考链接

PyTorch】torch.manual_seed()用法详解

总结

到此这篇关于PyTorch中torch.manual_seed()的法的文章就介绍到这了,更多相关PyTorch中torch.manual_seed()内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: PyTorch中torch.manual_seed()的用法实例详解

本文链接: https://lsjlt.com/news/118686.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PyTorch中torch.manual_seed()的用法实例详解
    目录一、torch.manual_seed(seed) 介绍torch.manual_seed(seed) 功能描述语法参数返回二、类似函数的功能三、实例实例 1 :不设随机种子,生...
    99+
    2024-04-02
  • pytorch中permute()函数用法实例详解
    目录前言三维情况变化一:不改变任何参数变化二:1与2交换变化三:0与1交换变化四:0与2交换变化五:0与1交换,1与2交换变化六:0与1交换,0与2交换总结前言 本文只讨论二维三维中...
    99+
    2024-04-02
  • PyTorch中torch.nn.Linear实例详解
    目录前言1. nn.Linear的原理:2. nn.Linear的使用:3. nn.Linear的源码定义:补充:许多细节需要声明总结前言 在学习transformer时,遇到过非常...
    99+
    2024-04-02
  • PyTorch中torch.utils.data.DataLoader实例详解
    1、dataset:(数据类型 dataset) 输入的数据类型,这里是原始数据的输入。PyTorch内也有这种数据结构。 2、batch_size:(数据类型 int) 批训练数...
    99+
    2024-04-02
  • Pytorch nn.Dropout的用法示例详解
    目录1.nn.Dropout用法一2.nn.Dropout用法二补充:torch.nn.dropout和torch.nn.dropout2d的区别1.nn.Dropout用法一 一句...
    99+
    2023-05-14
    Pytorch nn.Dropout用法 Pytorch nn.Dropout torch.nn.dropout和torch.nn.dropout2d区别
  • pytorch中的dataset用法详解
    目录1.torch.utils.data 里面的dataset使用方法2.torchvision.datasets的使用方法用法1:使用官方数据集用法2:ImageFolder通用的...
    99+
    2024-04-02
  • Pytorch中torch.flatten()和torch.nn.Flatten()实例详解
     torch.flatten(x)等于torch.flatten(x,0)默认将张量拉成一维的向量,也就是说从第一维开始平坦化,torch.flatten(x,1)代表从第...
    99+
    2024-04-02
  • pytorch中with torch.no_grad():的用法实例
    目录1.关于with2.关于withtorch.no_grad():附:pytorch使用模型测试使用withtorch.no_grad():总结1.关于with with是pyth...
    99+
    2024-04-02
  • 实例详解Pytorch中的tensor数据结构
    本篇文章给大家带来了关于Python的相关知识,torch.Tensor 是一种包含单一数据类型元素的多维矩阵,类似于 numpy 的 array,下面一起来看一下Pytorch中的tensor数据结构,希望对大家有帮助。php零基础到就业...
    99+
    2024-04-02
  • Pytorch中DataLoader的使用方法详解
    目录一:dataset类构建。二:DataLoader使用三:举例前言加载数据datasetdataloader在Pytorch中,torch.utils.data中的Dataset...
    99+
    2024-04-02
  • pytorch中的nn.ZeroPad2d()零填充函数实例详解
    在卷积神经网络中,有使用设置padding的参数,配合卷积步长,可以使得卷积后的特征图尺寸大小不发生改变,那么在手动实现图片或特征图的边界零填充时,常用的函数是nn.ZeroPad2...
    99+
    2024-04-02
  • python中format的用法实例详解
    目录1、基本用法1. 按照{}的顺序依次匹配括号中的值2. 通过索引的方式去匹配参数3. 通过参数名来匹配参数4. 混搭使用2、进阶用法1. 通过对象的属性2. 支持对参数部分引用3...
    99+
    2024-04-02
  • Java 中This用法的实例详解
     Java 中This用法的实例详解用类名定义一个变量的时候,定义的只是一个引用,外面可以通过这个引用来访问这个类里面的属性和方法。    那们类里面是够也应该有一个引用来访问自己的属性和方法纳?&n...
    99+
    2023-05-31
    java this ava
  • pytorch中transforms的使用详解
    目录transformsToTensortransforms使用为什么需要tensor数据类型呢?常见的transforms内置方法__call__()NormalizeResize...
    99+
    2024-04-02
  • 详解Pytorch中Dataset的使用
    此案例教我们加载并处理TorchVision的FashionMNIST Dataset。 root 目录是 train/test data 存储的地方 download=True 如...
    99+
    2022-12-29
    Pytorch Dataset使用 Pytorch Dataset
  • js中Object.create实例用法详解
    1、用Object.create()方法创建新对象,并使用现有对象提供新对象的proto。 2、提供两个参数,第一个是新创建的原型对象,第二个是为新创建的对象添加属性的对象。 实例 ...
    99+
    2024-04-02
  • python中defaultdict用法实例详解
    目录defaultdict底层代码:setdefault()和defaultdict()的区别:setdefault() defaultdict()总结 defa...
    99+
    2024-04-02
  • uniapp中easycom用法实例详解
    目录什么是easycom?如何使用easycom?easycom的规则easycom的注意事项Uniapp中的easycom是一种组件自动注册机制,可以让开发者更加方便地使用和管理组...
    99+
    2023-03-22
    uniapp easycom用法 uniapp easycom
  • Python中self用法实例详解
    在介绍Python的self用法之前,先来介绍下Python中的类和实例……我们知道,面向对象最重要的概念就是类(class)和实例(instance),...
    99+
    2023-03-22
    Python中self用法 Python中self用法
  • JS中fetch()用法实例详解
    目录了解fetch没有fetch时我们获取异步资源的方式:使用fetch后我们获取异步资源的方式fetch的语法fetch的Response对象1.同步属性2.判断请求是否成功发出3...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作