PyTorch中torch.manual_seed()如何使用(pytorch,开发技术)

时间:2024-05-04 22:20:43 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    PyTorch%E4%B8%ADtorch.manual_seed%28%29%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8

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

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

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

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

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

返回一个torch.Generator对象。

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

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

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

使用原因 :

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

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

tensor([0.4351])

tensor([0.3651])

tensor([0.7465])

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

tensor([0.4963])

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

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

tensor([0.7576])

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

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

tensor([0.8303])

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

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

输出结果:

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

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

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

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

输出结果:

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

本文:PyTorch中torch.manual_seed()如何使用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:基于Python如何实现二维图像双线性插值下一篇:

3 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18