首页 > 其他分享 >torch.manual_seed(seed)用法及注意事项

torch.manual_seed(seed)用法及注意事项

时间:2024-05-07 19:57:15浏览次数:27  
标签:tensor torch manual seed 随机数 print

torch.manual_seed(0) 是 PyTorch 中的函数调用,用于设置随机数生成器的种子。通过指定种子值,我们可以确保每次运行代码时生成的随机数序列是相同的,这样有助于保持实验的可复现性。

在深度学习中,训练过程中的随机化(例如权重初始化、数据采样等)可能会影响模型的性能和结果。因此,在进行实验时,通过设置种子可以确保每次运行代码时都使用相同的随机数序列,从而使结果可重现。

需要注意的是,torch.manual_seed(0) 只会对使用了 PyTorch 内置的随机数生成器的部分产生影响,有些库可能使用了自己的随机数生成器,不受该函数调用的影响。
但是同时应注意,每次生成随机数时,都应设置一样的随机种子,才能保证生成的随机数都相同。如:https://zhuanlan.zhihu.com/p/662224844。

 

“You can use torch.manual_seed() to seed the RNG for all devices (both CPU and CUDA):”

如官方文档所述,torch.manual_seed(seed)用来生成CPU或GPU的随机种子,方便下次复现实验结果。

1.如果未设置随机种子,在CPU中生成随机数:

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

则每次运行test.py返回的结果都是不同的处于(0, 1)之间的随机数:

输出结果:#1

tensor([0.5432])

输出结果:#2

tensor([0.3421])

输出结果:#3

tensor([0.8653])

2.设置随机种子后,每次运行生成的随机数都是相同的

# test.py
import torch

torch.manual_seed(0)
print(torch.rand(1))

输出结果:#1,#2,#3结果一致

tensor([0.3564])

3.若更改随机种子,则会生成不同的值

# test.py
import torch

torch.manual_seed(1)
print(torch.rand(1))

输出结果:#1,#2,#3结果一致

tensor([0.7653])

4.设置随机种子后,每次运行文件生成的随机值相同,但是每次生成的结果却不一样:

# test.py
import torch

torch.manual_seed(1)
print(torch.rand(1))
print(torch.rand(1))

输出结果:#1,#2,#3结果一致

tensor([0.4356])
tensor([0.5647])

5.若希望每次运行的随机数结果都一样,则需要在每次随机数前设置相同的种子

# test.py
import torch

torch.manual_seed(1)
print(torch.rand(1))
torch.manual_seed(1)
print(torch.rand(1))

输出结果:

tensor([0.4356])
tensor([0.4356])

 

 

 

标签:tensor,torch,manual,seed,随机数,print
From: https://www.cnblogs.com/Li-JT/p/18178243

相关文章

  • Pytorch入门—Tensors张量的学习
    Tensors张量的学习张量是一种特殊的数据结构,与数组和矩阵非常相似。在PyTorch中,我们使用张量来编码模型的输入和输出,以及模型的参数。张量类似于NumPy的ndarrays,只是张量可以在GPU或其他硬件加速器上运行。事实上,张量和NumPy数组通常可以共享相同的底层内存,从而无需复制数据(请参......
  • pytorch训练简单加减验证码(一):数据加载器实现
    1、torch.utils.data.Datasettorch.utils.data.Dataset是代表自定义数据集方法的类,用户可以通过继承该类来自定义自己的数据集类,在继承时要求用户重载__len__()和__getitem__()这两个魔法方法。len():返回的是数据集的大小。我们构建的数据集是一个对象,而数据集不像序列类型(列表......
  • ubuntu 上安装pytorch-cuda
    安装nvidia驱动不再赘述安装gcc环境sudoapt-getinstallbuild-essentialsudoportaudio19-devunzipx11-utils1build-essential用于安装一个软件包集合,其中包含了编译软件时经常需要使用的工具和库。这个软件包集合通常包括编译器(如gcc)、make工具、头文件等。build......
  • docker pytorch离线安装
    先在ubuntu18.0464位环境里,有联网情况下操作:安装dockerpytorch镜像:dockerpullpytorch/pytorch:1.13.0-cuda11.6-cudnn8-runtime下载依赖:bonelee@ubuntu:~/Desktop/pythonProject$sudodockerps-aCONTAINERIDIMAGE......
  • WPF C# construct Grid,DataGrid,Button manually
    usingMicrosoft.Win32;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Windows.Data;usingSystem.Windows.Documents;usin......
  • 《深度学习原理与Pytorch实战》(第二版)(三)11-15章
    第11章神经机器翻译器——端到端机器翻译神经机器翻译,google旗下的NMT编码-解码模型:用编码器和解码器组成一个翻译机,先用编码器将源信息编码为内部状态,再通过解码器将内部状态解码为目标语言。编码过程对应了阅读源语言句子的过程,解码过程对应了将其重组为目标语言的过程——......
  • 《深度学习原理与Pytorch实战》(第二版)(二)
    第6章手写数字加法器——迁移学习迁移学习允许训练集和测试集的数据有不同的分布、目标、领域;而一般的监督学习要求训练集和测试集上的数据有相同的分布特性一个有意思的想法:大公司运用大数据训练大模型,再将这些模型迁移到小公司擅长的特定垂直领域中,这样就可以将泛化的大模......
  • 配置pytorch
    下载pytorchhttps://pytorch.org/下拉找到找到,下图样式查看自己电脑的GPU版本方法1键盘按住Win+R**,输入cmd**在弹出界面输入nvidia-smi比如,我的GUP版本号是12.2方法2搜索nvidia弹出下图所示界面点击帮助--->系统信息在弹出界面点击组件可到下图......
  • 《深度学习原理与Pytorch实战》(第二版)
    第1章深度学习简介深度学习——利用深度人工神经网络来进行自动分类、预测和学习的技术,深度学习=深度人工神经网络超过三层的神经网络都可以叫做深度神经网络人工神经网络的关键算法——反向传播算法深度网络架构,即整个网络体系的构建方式和拓扑连接结构,主要分为3种:......
  • 安装pytorch
    $cat~/.condarc#https://help.mirrors.cernet.edu.cn/anaconda/channels:-defaultsshow_channel_urls:truedefault_channels:-https://mirrors.zju.edu.cn/anaconda/pkgs/main-https://mirrors.zju.edu.cn/anaconda/pkgs/r-https://mirrors.zju.edu.c......