# PPO + CarRacing-v3 任务进度追踪 > 生成时间:2026/04/30 --- ## 作业要求 用 Python 从零实现 PPO 算法,在 CarRacing-v3 环境训练智能体,提交: - 技术报告(≤3000 词,英文)PDF - 源代码 + 训练模型 zip 文件 - 截止:04/May/2026 23:59 - **禁止使用**:Stable-Baselines 等 RL 专用库 - **允许使用**:TensorBoard、PyTorch、Gymnasium --- ## 一、已完成 ✅ | 步骤 | 内容 | 文件 | |------|------|------| | ✅ 项目结构 | src/ 目录、requirements.txt、README.md | [requirements.txt](requirements.txt)、[README.md](README.md) | | ✅ 策略/价值网络 | Actor(高斯策略输出 μ, σ)+ Critic 实现,CNN 结构 | [src/network.py](src/network.py) | | ✅ Rollout Buffer | 轨迹存储 + GAE 优势估计 + 返回值计算 | [src/replay_buffer.py](src/replay_buffer.py) | | ✅ PPO Trainer | PPO 更新(clip 目标函数 + 熵正则 + 价值损失) | [src/trainer.py](src/trainer.py) | | ✅ 环境预处理 | 灰度化 + Resize(84×84) + 帧堆叠(4帧) Wrapper | [src/utils.py](src/utils.py) | | ✅ 评估脚本 | 渲染测试 + 多回合平均分数评估 | [src/evaluate.py](src/evaluate.py) | | ✅ 训练入口 | 主训练循环、TensorBoard 记录、模型保存 | [train.py](train.py) | **核心算法实现要点**: - 策略网络:3 层 CNN + FC(512) → μ, σ(高斯策略,tanh 激活) - 价值网络:3 层 CNN + FC(512) → V(s) - GAE:λ=0.95,优势归一化 - PPO clip:ε=0.2,4 epoch 更新,mini-batch 64 --- ## 二、待完成 ⬜ | 步骤 | 内容 | 优先级 | |------|------|--------| | ⬜ 安装依赖 | `uv pip install --system -r requirements.txt` | **高** | | ⬜ 环境测试 | 短时间(~10000步)验证代码能跑通 | **高** | | ⬜ 完整训练 | 运行 500k+ 步,预计 5-8 小时(后台) | **高(耗时)** | | ⬜ 生成图表 | 从 TensorBoard 提取数据,用 matplotlib 绘图 | 中 | | ⬜ 撰写报告 | 英文技术报告(≤3000 词),LaTeX 排版 | 中 | | ⬜ 编译 PDF | XeLaTeX 编译生成 CW1_1234560.pdf | 中 | | ⬜ 打包 zip | 源代码 + 模型打包 CW1_1234560.zip | 低 | --- ## 三、文件结构 ``` 强化学习个人项目报告/ ├── src/ │ ├── __init__.py │ ├── network.py # Actor + Critic CNN 网络 │ ├── replay_buffer.py # Rollout buffer + GAE │ ├── trainer.py # PPO 更新逻辑 │ ├── utils.py # 环境预处理 wrappers │ └── evaluate.py # 评估脚本 ├── train.py # 主训练入口 ├── requirements.txt ├── README.md └── TASK_PROGRESS.md # 本文档 ``` --- ## 四、超参数配置 | 参数 | 值 | |------|-----| | Learning rate | 3e-4 | | Gamma | 0.99 | | GAE lambda | 0.95 | | Clip epsilon | 0.2 | | PPO epochs | 4 | | Mini-batch size | 64 | | Rollout steps | 2048 | | Entropy coefficient | 0.01 | | Value coefficient | 0.5 | | Max gradient norm | 0.5 | | State shape | (84, 84, 4) | | Action dim | 3(连续:steer, gas, brake) | --- ## 五、下一步行动 ### 立即执行 ```bash # 1. 安装依赖 uv pip install --system -r requirements.txt # 2. 验证代码能跑(短测试) python train.py --steps 10000 # 3. 开始正式训练(后台运行,预计 5-8 小时) python train.py --steps 500000 ``` ### 训练完成后 ```bash # TensorBoard 可视化 tensorboard --logdir logs/tensorboard # 评估模型 python src/evaluate.py --model models/ppo_carracing_final.pt --episodes 10 ``` ### 报告撰写后 ```bash # 编译 PDF cd tex && xelatex CW1_1234560.tex ``` --- ## 六、报告结构(≤3000 词) 1. **Introduction** — RL 背景、CarRacing-v3 任务、状态/动作/奖励空间定义 2. **Methodology** — PPO 数学公式、clip 机制、GAE 优势估计 3. **Implementation Details** — 网络结构、训练流程、超参数、问题与解决 4. **Results and Analysis** — 训练曲线图、评估结果、与 SB3 基线对比 5. **Conclusion** — PPO 敏感性、actor-critic 有效性总结 --- ## 七、提交清单 - [ ] `CW1_1234560.pdf` — 技术报告(封面 + ≤3000 词) - [ ] `CW1_1234560.zip` — 源代码 + 训练好的模型 .pt 文件 - [ ] 所有代码使用英文注释 - [ ] 图表坐标轴和图例使用英文