上面的结果仅在一张 RTX 3090 上训练了半个小时得到,PPO 的效果远超 DQN 的效果。
本项目还有许多处理不完善的地方,最终可能会遇到数值溢出。但是作为了解 PPO 的入门项目,无疑是简单而有趣的。
pip install -r requirements.txtpython train.py 0 False
## python train.py <id> <recover>
## id: 整数,用来标记 record 中的输出
## recover: Bool, 是否从保存的模型中恢复模型文件输出在 models/ 目录下。
游戏记录输出在 record/ 目录下。
游戏部分基于此项目进行改编:SigureMo/T-Rex-runner-pygame: 🦖 T-rex running implemented with pygame。在其基础上关闭显示,实现了逐帧控制。
PPO 的框架改编自 Hands-on-RL,针对较长的游戏周期,实现了 mini-batch 训练。
