深色模式
repro-log:复现记录与复现报告
复现论文时先定目标和级别,用脚本记录硬件、驱动、软件版本和代码提交,最后把复现结果和论文数字放在一张表里分析差距。
能做什么
复现最常见的问题不是跑不通,而是跑通了却说不清:用的哪个版本、改了什么参数、结果为什么和论文不一样。这个技能帮你从一开始就记下来:
- 定目标和级别:跑通、复现一个数、复现一张图、换条件得到新结果;
- 记下论文的设置,论文没写清的列成“需要假设的细节”;
- 记录环境:脚本自动收集系统、CPU、内存、GPU 型号和驱动、CUDA、Python 和关键软件包的版本、代码的 Git 提交和未提交的修改;
- 过程记录:每次正式运行的命令、配置、结果文件位置,遇到的报错和解决方法;
- 复现报告:论文和复现结果放在同一张表里,逐项分析差距的原因,最后写发现的问题和想法。
安装
装到当前项目(.claude/skills/),macOS / Linux
curl -LO https://skills.bnuai.com/download/skills/repro-log.zip && mkdir -p .claude/skills && unzip -o repro-log.zip -d .claude/skills装到个人目录,所有项目都能用,macOS / Linux
curl -LO https://skills.bnuai.com/download/skills/repro-log.zip && mkdir -p ~/.claude/skills && unzip -o repro-log.zip -d ~/.claude/skills装到当前项目,Windows PowerShell
Invoke-WebRequest https://skills.bnuai.com/download/skills/repro-log.zip -OutFile repro-log.zip; Expand-Archive repro-log.zip -DestinationPath .claude\skills -Force压缩包从本站下载,不需要 Node.js 或 GitHub。带脚本的技能需要 Python 3.9 以上。更新时重新下载解压、覆盖原文件夹即可。
怎么用
text
我要复现 PrediT 这篇论文的表 2,帮我建一个复现记录,先把环境记下来。text
复现跑完了,结果在 results/ 下面,帮我写复现报告。示例:环境记录
在实验所用的 Python 环境里运行,输出可以直接贴进报告:
text
## 环境
| 项目 | 内容 |
|---|---|
| 系统 | Linux-5.15.0-x86_64-with-glibc2.35 |
| CPU | AMD EPYC 7763 64-Core Processor,128 个逻辑核 |
| 内存 | 1007.5 GB |
| GPU | NVIDIA A800-SXM4-80GB(81920 MiB)、…… |
| 驱动 | 550.54.15(支持的最高 CUDA 版本 12.4) |
| Python | 3.11.9(/home/xx/.venv/bin/python) |
| PyTorch | 2.5.1,编译用 CUDA 12.4,cuDNN 90100,GPU:NVIDIA A800-SXM4-80GB …… |
| 代码 | https://github.com/xx/PrediT.git @ main 3f2a9c1e8b7d(2026-09-30 …),有 2 个文件未提交 |
软件包版本:
torch==2.5.1
diffusers==0.31.0
……
> 代码有未提交的修改,实验结果无法对应到具体的代码版本。正式实验前先提交。(上面是示意,实际内容取决于你的机器。)
直接运行脚本
bash
python3 skills/repro-log/scripts/env_snapshot.py --repo 代码目录 --torch
python3 skills/repro-log/scripts/env_snapshot.py --all-packages --json权限说明
不联网。会运行 git、nvidia-smi、nvcc 读取版本信息;加 --torch 时会导入 torch。只读取 VIRTUAL_ENV、CONDA_DEFAULT_ENV 两个环境变量,不会读取或输出密钥、令牌。
局限
报告里的数字只能来自实际运行的结果。没跑完的实验写“未完成”,不能估计或照抄论文的数字。