torch.manual_seed(seed) – 官方文档说明:设置 (CPU) 生成随机数的种子,并返回一个torch.Generator对象。

设置种子的用意是一旦固定种子,后面依次生成的随机数其实都是固定的。

通过代码说明一下:

import torchrandom_seed = 123
torch.manual_seed(random_seed)
print(torch.rand(1)) # 随机生成[0, 1)的数
print(torch.rand(1))"""
Out:
tensor([0.2961])
tensor([0.5166])
"""

说明:上面手动设置完种子之后,调用了两次torch.rand这个API (随机生成[0, 1]的数),可以发现输出的是两个不同的随机数,不是说已经固定种子了吗?怎么还会生成不同的随机数?实际上,准确来说,手动设置种子之后导致的结果应该是:在每次重新运行上面的程序时,得到的打印结果都是上面两个数。

在每次重新运行程序时,同样的随机数生成代码得到的是同样的结果。
打个比方:设置好种子后,第一次运行程序时,第一个生成的随机数是A,第二个生成的随机数是B, 第三个生成的随机数是C,第四个生成的随机数是D。那么,不管第二次,第三次,还是第n次运行程序时,第一个生成的随机数仍然是A,第二个生成的随机数仍然是B, 第三个生成的随机数仍然是C,第四个生成的随机数仍然是D。

ps:手动设置种子一般可用于固定随机初始化的权重值,这样就可以让每次重新从头训练网络时的权重的初始值虽然是随机生成的但却是固定的。


同样的道理,也可以手动设置GPU的随机数生成种子:
torch.cuda.manual_seed(seed) – 设置当前GPU的随机数生成种子
torch.cuda.manual_seed_all(seed) – 设置所有GPU的随机数生成种子

torch中manual_seed的作用相关推荐

  1. torch中Variable的作用

    Variable可以把输出的Tensor变成一个输入变量,这样梯度就不会回传了.detach()也是可以的如果都不加那么就得retain_graph=True了,否则报错 import torch i ...

  2. random.seed(seed)、np.random.seed(seed)、torch.manual_seed(seed)作用

    Python中的random random.seed(seed: int) 设置随机数种子 np.random.seed(seed: int) 设置numpy随机数种子 torch.random.se ...

  3. torch.manual_seed()及其作用

    含义 torch.manual_seed(parameter) #为CPU设置种子用于生成随机数,以使得结果是确定的 torch.cuda.manual_seed(parameter)#为当前GPU设 ...

  4. 关于numpy,torch中seed()方法的一些理解

    首先举几个使用seed()函数的例子: # 生成随机数,以便固定后续随机数,方便复现代码 random.seed(args.seed) # 没有使用GPU的时候设置的固定生成的随机数 np.rando ...

  5. einops包中的rearrange,reduce, repeat及einops.layers.torch中的Rearrange,Reduce。对高维数据的处理方式

    from einops import rearrange, reduce, repeat from einops.layers.torch import Rearrange, Reduce 一.rea ...

  6. torch中Dataset的构造与解读

    torch中Dataset的构造与解读 Dataset的构造 要自定义自己的数据集,首先需要继承Dataset(torch.utils.data.Dataset)类. 继承Dataset类之后,必须重 ...

  7. torch中的copy()和clone()

    torch中的copy()和clone() 1.torch中的copy()和clone() y = torch.Tensor(2,2):copy(x) --- 1 修改y并不改变原来的x y = x: ...

  8. VMware虚拟机文件夹中各文件作用详解

    VMware虚拟机文件夹中各文件作用详解 虚拟机的文件管理由VMware Workstation来执行. 一个虚拟机一般以一系列文件的形式储存在宿主机中, 这些文件一般在由workstation为虚拟 ...

  9. Science:亚硝酸盐氧化细菌在黑暗海洋中的主要作用

    文章目录 亚硝酸盐氧化细菌在黑暗海洋中的主要作用 写在前面 摘要 热心肠日报 背景 结果 图1 非全长16S rRNA基因序列的系统发育树 图2 通过募集宏基因组片段的方法确定亚硝酸盐氧化细菌单扩增基 ...

最新文章

  1. 系统分析师零散知识点
  2. JS经典面试题03-引用类型连续赋值a.x = a = { n: 2 }
  3. 『Linux基础 - 4 』linux常用命令(1)
  4. Spring.NET学习笔记13——AOP的概念(基础篇) Level 200
  5. Promise.then(a, b)与Promise.then(a).catch(b)问题详解
  6. oracle 误删表数据,还原到某个时间点
  7. 射极跟随器负载加重解析
  8. netbean 快捷键
  9. SpringMvc框架及SSM框架整合
  10. 【Python】官方文档中文版
  11. srio 门铃_如何更改SkyBell HD门铃的LED颜色
  12. libxml2经验--xmlReadFile
  13. python绘图用什么软件_作图用什么软件比较好?
  14. 假设检验:p-value,FDR,q-value
  15. 市场调研策划书_市场调查策划书
  16. vue3中使用webcamjs拍照
  17. 项目记录——为沙特客户Android开发Google地图应用
  18. Qt练习项目 - 个人网盘开发 - [ Sloot Netdisk ] (一) 界面开发
  19. Windows系统禁止软件、驱动阻止系统息屏、睡眠。
  20. 4核8G云服务器4c8g或4h8g指的是什么?

热门文章

  1. mysql.lib 是mtd mdd_VS运行时 /MD、/MDd 和 /MT、/MTd之间的区别
  2. Access用户如何借助低代码转型为Web(B/S和移动端)开发?
  3. vue+echarts封装日历图
  4. bzoj1146整体二分+树链剖分+树状数组
  5. python字母频率统计
  6. https://api.douban.com 不在以下 request 合法域名列表中,请参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/net
  7. 安装iperf,提示:没有可用软件包 iperf
  8. sparrow图标素材
  9. Bert超长文本分类、文本摘要
  10. Jackson 数据类型转换(使用JavaType)