如何在PyTorch中取消手动设置的种子?无需重启Jupyter运行时恢复随机状态
PyTorch恢复随机种子模式的方法及说明
恢复方法
不用重启Jupyter运行时,可通过两种方式恢复随机种子模式:
- 调用
torch.seed()函数:该函数会基于系统随机源(如当前时间、硬件熵值等)重新设置一个随机的全局种子,直接让生成器回到随机状态。 - 手动生成随机整数作为种子传入
torch.manual_seed():比如执行import random; torch.manual_seed(random.randint(0, 10**18)),效果和torch.seed()一致,用随机种子覆盖之前的固定种子。
生成器状态说明
无论用哪种方式恢复,都会重启随机生成器,而非回到设置手动种子之前的中断位置。因为调用torch.manual_seed()或torch.seed()时,会直接重置全局随机生成器的内部状态,之前的状态会被完全覆盖,无法回溯到设置固定种子前的进度。
示例代码:
# 初始随机状态 print(torch.rand(1)) # 输出随机值 # 设置固定种子 torch.manual_seed(42) print(torch.rand(1)) # 输出固定值 tensor([0.8823]) # 恢复随机模式 torch.seed() print(torch.rand(1)) # 输出新随机值,和初始状态输出无关联
内容的提问来源于stack exchange,提问作者JobHunter69
相关产品推荐
相关产品推荐

