Pytorch torch.manual_seed()的简单用法

简单来说就是指定随机数种子(种子可以是个任意int值),用来生成伪随机数:

import torch

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

输出:

tensor([0.7576])
tensor([0.2793])
tensor([0.4031])

之后再运行同样会生成相同的随机数序列

这样的意义在于可以保证在深度网络在随机初始化各层权重时,多次试验的初始化权重是一样的,结果可以复现。

此外,还可以给GPU设置种子,上面讲的是给CPU设置的情况:

# 为当前GPU设置
if args.cuda:
	torch.cuda.manual_seed(args.seed)
# 为所有GPU设置
torch.cuda.manual_seed_all(args.seed)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`torch.manual_seed(seed)` 是 PyTorch 中的一个函数,用于设置随机数生成器的种子(seed)。在机器学习和深度学习中,随机数生成器常用于初始化模型参数的随机值、数据集的随机抽样、数据增强的随机变换等。 设置种子的作用是为了确保在相同的种子下,随机数生成器产生的随机数序列是可复现的。即在相同的种子下,每次运行代码得到的随机数序列都是一样的。这样可以保证在实验中的随机性是可控的,方便进行结果的比较和调试。 具体来说,`torch.manual_seed(seed)` 的作用有以下几个方面: 1. 初始化模型参数的随机值:神经网络模型中的权重和偏置通常会使用随机初始化。通过设置种子,可以确保每次运行时得到相同的初始化值,从而使实验结果可复现。 2. 随机抽样:在训练过程中,常会进行随机抽样来构造批次数据,如随机选择一部分样本进行梯度更新。通过设置种子,可以确保每次抽样得到相同的样本,从而保证实验结果的可比性。 3. 数据增强:在图像处理中常用的数据增强技术,如随机裁剪、随机翻转等,都会使用随机数生成器产生随机变换参数。设置种子可以确保每次运行时得到相同的随机变换,使得数据增强的结果是可复现的。 需要注意的是,`torch.manual_seed(seed)` 只能保证在单个 GPU 上的结果可复现。如果使用多个 GPU 或分布式训练,还需要设置其他相关的随机种子,如 `torch.cuda.manual_seed(seed)` 和 `torch.cuda.manual_seed_all(seed)`,以确保结果在不同设备间的一致性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值