seed_everything 函数

没有固定随机种子时的情况

假设你要随机生成 5 个数字,并希望对这些数字进行某种处理。以下是没有固定随机种子的代码:

复制代码
import random

# 每次运行都会生成不同的随机数
random_numbers = [random.random() for _ in range(5)]
print("随机生成的数字:", random_numbers)
第一次运行输出:
复制代码
随机生成的数字: [0.834, 0.769, 0.567, 0.124, 0.945]
第二次运行输出:
复制代码
随机生成的数字: [0.657, 0.345, 0.879, 0.456, 0.234]

你会发现,每次运行的结果都不一样。这是因为随机数生成器的初始状态(种子)没有被固定。


固定随机种子时的情况

现在,我们通过固定随机种子来确保随机数的结果是可重复的:

复制代码
import random

# 固定随机种子
random.seed(42)

# 每次运行都会生成相同的随机数
random_numbers = [random.random() for _ in range(5)]
print("随机生成的数字:", random_numbers)
第一次运行输出:
复制代码
随机生成的数字: [0.6394267984578837, 0.025010755222666936, 0.27502931836911926, 0.22321073814882275, 0.7364712141640124]
第二次运行输出:
复制代码
随机生成的数字: [0.6394267984578837, 0.025010755222666936, 0.27502931836911926, 0.22321073814882275, 0.7364712141640124]

无论你运行多少次代码,只要种子是 42,结果就会完全一致。


在机器学习任务中的应用

假设场景

你在训练 PINN 模型时,需要以下随机操作:

  1. 初始化模型权重(随机初始化)。
  2. 采样 PDE 的随机点 (例如用 np.random.random 生成点)。
  3. 随机打乱数据集(在数据增强时)。

如果没有固定种子,每次运行都会因为这些随机操作导致模型的最终结果不同。这会让实验难以复现,也无法比较不同的实验设置的影响


具体代码举例
复制代码
import numpy as np
import torch

# 固定种子函数
def seed_everything(seed):
    np.random.seed(seed)
    torch.manual_seed(seed)
    random.seed(seed)

# 未固定种子的情况下
x = np.random.rand(5)
print("未固定种子时的随机数:", x)

# 固定种子后
seed_everything(1)
x = np.random.rand(5)
print("固定种子后的随机数:", x)

# 再次固定相同种子
seed_everything(1)
x = np.random.rand(5)
print("再次固定种子后的随机数:", x)
输出结果
复制代码
未固定种子时的随机数: [0.5488135  0.71518937 0.60276338 0.54488318 0.4236548 ]
固定种子后的随机数: [0.417022   0.72032449 0.00011437 0.30233257 0.14675589]
再次固定种子后的随机数: [0.417022   0.72032449 0.00011437 0.30233257 0.14675589]

你会发现:

  • 未固定种子时,每次运行都不一样。
  • 固定种子后,无论运行多少次,结果都是一致的。

总结

固定随机种子是为了确保实验的可重复性。在多次运行中,你可以得到相同的随机点、相同的初始化参数,从而确保实验结果的一致性。例如,在 PINN 模拟中:

  • 你用固定种子生成的 PDE 采样点相同。
  • 训练出的模型初始参数相同。 这样,你可以专注于调整其他超参数,而不需要担心随机性的影响导致实验结果不一致。
相关推荐
石小石Orz几秒前
给Claude增加状态栏显示:claude-hud保姆级教程
前端·人工智能·后端
2601_958352902 分钟前
从模拟到数字全接口打通:A-59P 为通话设备提供灵活音频升级方案
人工智能·语音识别·嵌入式开发·ai降噪·回音消除
郑寿昌2 分钟前
2026年AI新趋势:智能代理崛起
人工智能
瑞华丽PLM3 分钟前
瑞华丽工业软件与 AI 智能体新手部署指南
人工智能·cae·工业软件·国产软件·国产plm·瑞华丽plm·瑞华丽
JGHAI5 分钟前
2026年GEO技术发展趋势:从“流量游戏”到“智能对齐”,技术演进驱动品牌信任重塑
大数据·人工智能
最贪吃的虎8 分钟前
给 Agent 接入新模型的推理模式:从配置开关到协议适配
人工智能·python·langchain
老吴的商业笔记10 分钟前
爱搜索 GEO 营销系统全维度实测与价值评估
人工智能
视***间13 分钟前
算力为核,智驱无界——视程空间硬核赋能机器狗与机器人,解锁具身智能产业新未来
大数据·运维·人工智能·机器人·采集卡·机器狗·视程空间
大江东去浪淘尽千古风流人物16 分钟前
【SANA-WM】分钟级世界模型:混合线性扩散Transformer与双分支相机控制深度解析
人工智能·深度学习·架构·spark·机器人·transformer·wm
Bruce_Liuxiaowei25 分钟前
WorkBuddy案例——教育辅导智能体
人工智能·ai·大模型·智能体·龙虾·workbuddy