torch.manual_seed(seed) – 官方文档说明:设置 (CPU) 生成随机数的种子,并返回一个torch.Generator对象。
设置种子的用意是一旦固定种子,后面依次生成的随机数其实都是固定的。
通过代码说明一下:
import torch
random_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]的数),可以发现输出的是两个不同的随机数,不是说已经固定种子了吗?怎么还会生成不同的随机数?实际上,准确来说,手动设置种子之后导致的结果应该是:在每次重新运行上面的程序时,得到的打印结果都是上面两个数。
在每次重新运行程序时,同样的随机数生成代码得到的是同样的结果
本文详细解释了torch.manual_seed的作用,它用于设置CPU随机数生成的种子,确保在多次运行同一段代码时能复现随机数序列。通过示例展示了设置种子后,即使在同一程序运行中,多次调用torch.rand也会产生不同的随机数,但在不同运行之间,这些随机数会保持一致。强调了在实验可复现性和调试中设置种子的重要性。
639

被折叠的 条评论
为什么被折叠?



