pytorch-torch.manual_seed(1)的作用

功能

神经网络中,参数默认是进行随机初始化的。不同的初始化参数往往会导致不同的结果,当得到比较好的结果时我们通常希望这个结果是可以复现的。总的来说:设置生成随机数的种子,方便复现结果。

示例

借助rand()函数讲解,我们都知道rand()函数是生成随机数的,每次运行程序都会生成随机数。

1.不使用torch.manual_seed()设置随机种子
print(torch.rand(5))

结果:每次运行程序都生成不同的数值

第一次生成的:tensor([0.9884, 0.3207, 0.6428, 0.6181, 0.8697])
第二次生成的:tensor([0.5723, 0.0628, 0.8032, 0.3275, 0.4188])
第三次生成的:tensor([0.5813, 0.4200, 0.1800, 0.9778, 0.6354])
2.使用torch.manual_seed()设置随机种子
import torch
torch.manual_seed(1)
print(torch.rand(5))

结果:程序每次运行程序都是生成一样的数值(无论运行多少次)

tensor([0.7576, 0.2793, 0.4031, 0.7347, 0.0293])

3.设置torch.manual_seed()后,不是每个rand()函数都生成一样的数据,而是同一个rand()函数在每次运行程序时,生成的数据一样
import torch
torch.manual_seed(1)
print(torch.rand(5))
print(torch.rand(5))

结果:每次运行程序,都生成这两组数据(各生成各的)

tensor([0.7576, 0.2793, 0.4031, 0.7347, 0.0293])
tensor([0.7999, 0.3971, 0.7544, 0.5695, 0.4388])
注意:

如果多加一个torch.manual_seed(1),则两个rand()生成的数据一样

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

结果:

tensor([0.7576, 0.2793, 0.4031, 0.7347, 0.0293])
tensor([0.7576, 0.2793, 0.4031, 0.7347, 0.0293])
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值