实验记录模板:让每一次仿真都能被复现

仿真跑出结果以后,人很容易只保存一张图。但一周后再看,往往已经想不起这组曲线对应哪版代码、哪些参数,以及中间调整过什么。

实验记录的目的不是把终端日志复制一遍,而是让工作具备可复现性:换一台机器、换一个时间点,仍然能够解释结果是怎么来的。

一、实验基本信息

项目 内容
实验编号 EXP-YYYYMMDD-01
日期 YYYY-MM-DD
目的 验证什么假设,或比较哪两个方案
对应论文 / 想法 文献链接或研究问题编号
代码版本 Git commit hash
数据版本 数据集名称、版本或校验值

二、运行环境

  • 操作系统与版本:
  • 仿真软件 / 编程语言及版本:
  • 关键依赖及版本:
  • 硬件:CPU / GPU / 内存;
  • 随机种子(如有随机过程):

环境信息看似琐碎,但“在我电脑上能跑”不是可复现性。版本差异常常是结果不一致的第一来源。

三、变量与参数

先写清楚哪些是自变量、哪些是控制变量、哪些是要观测的指标。尤其要记录与默认值不同的参数,以及调整它们的原因。

参数 取值 说明
参数 A 为什么选这个范围
参数 B 是否为固定基准
采样步长 对精度和耗时的影响

有公式时,直接把定义写下来,避免不同脚本中的计算口径不一致。例如用均方根误差比较预测值与真实值:

四、执行步骤

写成一个可以照着重新执行的最小步骤列表:

  1. 从哪个提交或压缩包开始;
  2. 如何准备输入数据;
  3. 运行哪个入口脚本;
  4. 输出保存在哪里;
  5. 后处理脚本是什么。

如果命令很长,至少记录入口文件和关键参数。不要只写“运行了主程序”。

五、结果与证据

除了最终指标,还要记录:

  • 与基线相比的变化幅度;
  • 重复运行时的波动;
  • 出现了哪些异常点或不收敛情况;
  • 哪张图、哪个文件是这次实验的有效证据。
重要: 原始结果不要只留在聊天记录或临时目录里。至少保留一份只读副本,并记录它对应的代码版本。

六、解释与下一步

结果本身不会告诉我们原因。需要区分:

  • 观察到的现象:例如误差下降,但某类样本明显变差;
  • 暂时接受的解释:为什么会出现这个现象;
  • 尚未排除的替代解释:还有哪些可能;
  • 下一步实验:为了区分这些解释,应该改哪个变量。

七、可直接使用的日志骨架

## 实验目的
## 对应代码版本
## 运行环境
## 输入与参数
## 执行步骤
## 结果(指标 / 图 / 文件路径)
## 异常与失败记录
## 我的解释
## 下一步

一份好的实验日志,应该让未来的自己不必重新猜测,也让合作者能够在同一基础上继续工作。