Files
rl-atari/CW1_id_name/docs/submission_checklist.md
Serendipity fb09e66d09 feat: 重构项目结构并添加向量化PPO训练与评估脚本
- 将原始单环境训练代码重构为模块化结构,添加向量化环境支持以提高数据采集效率
- 实现完整的PPO训练流水线,包括共享CNN的Actor-Critic网络、向量化经验回放缓冲和GAE优势估计
- 添加训练脚本(train_vec.py)、评估脚本(evaluate.py)和SB3基线对比脚本(train_sb3_baseline.py)
- 提供详细的文档和开发日志,包含问题解决记录和实验分析
- 移除旧版项目文件,统一项目结构到CW1_id_name目录下
2026-05-02 13:44:08 +08:00

5.8 KiB
Raw Permalink Blame History

Submission Checklist

最后提交前逐项核对,避免格式扣分。

1. 命名格式

  • zip 文件名:CW1_<学号>_<姓名拼音>.zip
    • 例:CW1_2012345_ZhangSan.zip
  • PDF 文件名:CW1_<学号>_<姓名拼音>.pdf
  • 学号 + 姓名拼写全程一致zip / pdf / 报告封面页)
  • PDF 不放进 zip!分两个文件单独上传

2. zip 内容(提交前检查)

CW1_<ID>_<Name>.zip
├── README.md                       ✅
├── requirements.txt                ✅
├── train.py                        ✅ 单环境 legacy
├── train_vec.py                    ✅ 主训练脚本
├── train_sb3_baseline.py           ✅ SB3 基线
├── evaluate.py                     ✅ 评估脚本
├── scan_checkpoints.py             ✅ checkpoint 扫描
├── src/
│   ├── __init__.py
│   ├── env_wrappers.py
│   ├── vec_env_wrappers.py
│   ├── networks.py
│   ├── rollout_buffer.py
│   ├── vec_rollout_buffer.py
│   ├── ppo_agent.py
│   ├── eval_utils.py
│   └── utils.py
├── notebooks/
│   ├── 01_explore_env.ipynb
│   ├── 02_test_network.ipynb
│   ├── 03_test_buffer.ipynb
│   ├── 04_test_ppo.ipynb
│   └── 05_evaluate.ipynb
├── models/
│   └── ppo_final.pt                ⭐ 最佳 checkpoint,重命名后唯一一个
├── runs/
│   └── vec_main_v3/                ⭐ 主训练 TensorBoard 日志
└── docs/                           ✅ 报告素材(可全部保留)
    ├── step00_skeleton.md
    ├── step01_env_exploration.md
    ├── ...
    ├── step07_evaluation.md
    ├── issues_and_fixes.md
    ├── report_outline.md
    ├── eval_summary.json
    ├── checkpoint_scan_*.json
    ├── fig_eval_bar.png
    ├── fig_training_curves.png
    └── demo.mp4

3. zip 不应包含的东西(提交前删除)

  • __pycache__/ 目录(src/ 下可能有,删掉)
  • *.pyc 文件
  • .ipynb_checkpoints/ 目录
  • runs/smoke_test/runs/smoke_v2/runs/n8_speed_test/runs/vec_smoke*/ 等无用日志
  • models/main_v1_baseline/models/smoke_*/models/n8_speed_test/ 等无用 checkpoint
  • models/vec_main_v3/iter_*.pt 中除最佳外的所有中间 checkpoint
  • anaconda_projects/ 等 IDE 自动产生目录(如果存在)

一键清理命令

cd D:\projects\CW1_xxx

# 1. 把最佳 checkpoint 复制为 ppo_final.pt
Copy-Item models\vec_main_v3\<最佳iter>.pt models\ppo_final.pt

# 2. 删除中间 checkpoints
Remove-Item -Recurse -Force models\vec_main_v3
Remove-Item -Recurse -Force models\main_v1_baseline -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force models\smoke_test, models\smoke_v2, models\n8_speed_test, models\vec_smoke -ErrorAction SilentlyContinue

# 3. 删除无用 runs
Remove-Item -Recurse -Force runs\smoke_test, runs\smoke_v2, runs\n8_speed_test, runs\vec_smoke, runs\vec_smoke_v3, runs\vec_smoke_v3b -ErrorAction SilentlyContinue

# 4. 把 vec_main_v3 重命名成 main(提交时更清晰)
Move-Item runs\vec_main_v3 runs\main

# 5. 删除 __pycache__ 和 .ipynb_checkpoints
Get-ChildItem -Recurse -Force -Include "__pycache__",".ipynb_checkpoints" | Remove-Item -Recurse -Force
Get-ChildItem -Recurse -Filter "*.pyc" | Remove-Item -Force

4. PDF 报告内容核对

  • 第一页 cover page:含学生 ID
  • 字数 ≤ 3000(不含 References 和 Appendix
  • 5 个 section 全有:Introduction / Methodology / Implementation Details / Results and Analysis / Conclusion
  • 3 张关键图:训练曲线、评估柱状图、SB3 对比(已在 fig_training_curves.png
  • 超参数表Table 1 in Section 3.3
  • 网络架构图(手绘或 PowerPoint 画)
  • References 至少 3-5 篇(PPO + GAE + Gymnasium 文档)
  • PDF 字体清晰,所有图表 axis label / legend 都可读
  • PDF 文件可在另一台电脑打开(不要损坏)

5. 代码可复现性(致关键)

提交前在不同目录不同电脑做这个测试:

# 假设你解压 zip 到一个新位置
cd C:\test_dir\CW1_<ID>_<Name>

# 1. 装依赖
pip install -r requirements.txt

# 2. 加载模型测试
python -c "from src.ppo_agent import PPOAgent; agent = PPOAgent(); agent.load('models/ppo_final.pt'); print('OK')"

# 3. 跑评估(最少 5 episodes
python evaluate.py --ckpt models/ppo_final.pt --episodes 5

如果以上 3 步全过,提交内容复现性 OK

6. 学术诚信

  • src/没有任何 from stable_baselines3 import 语句
    • 验证:Get-ChildItem src\ -Recurse -Filter *.py | Select-String "stable_baselines3"
  • train_sb3_baseline.py 在报告里明确标记为 baseline only
  • 所有外部代码灵感(CleanRL、PPO 论文、37 details 博客)在报告 References 里列出
  • 报告封面"yes" 同意匿名教学使用(视个人意愿)

7. 学习 Mall 上传后

  • 下载 zip 和 pdf,验证文件完整未损坏
  • 在干净电脑上重新打开 PDF 看一眼
  • 截图保存提交确认页(防系统崩溃)

8. 时间节点(截止 2026-05-04 23:59

  • 至少 48 小时前(即 2026-05-02 中午)完成所有内容
  • 不要 拖到截止当天,Learning Mall 临近截止经常上传失败
  • 留 1-2 天缓冲修 bug / 改报告

9. 紧急情况备选

  • 如果 vec_main_v3 训练崩溃 → 使用 runs/main_v1_baseline/ + models/main_v1_baseline/ 数据
    • 报告里诚实说明 (305K 步早期停止)
  • 如果 SB3 baseline 没跑出来 → 报告 Section 4.3 删掉对比,改成"plan to compare in future work"
  • 如果 PDF 超字数 → 删 Implementation Details 里的次要细节,保留 Methodology 和 Results