CleanRL项目基础使用指南:从训练到可视化全流程
前言
CleanRL是一个专注于提供干净、简洁实现深度强化学习算法的项目。本文将详细介绍如何使用CleanRL进行强化学习训练,包括环境配置、训练执行、结果可视化和视频录制等完整流程。
环境准备与运行方式
在完成依赖安装后,CleanRL提供了两种运行方式,均基于poetry虚拟环境:
1. 直接运行模式
使用poetry run
命令可以直接在虚拟环境中执行脚本:
poetry run python cleanrl/ppo.py \
--seed 1 \
--env-id CartPole-v0 \
--total-timesteps 50000
这种方式适合快速执行单次训练任务,无需手动激活虚拟环境。
2. 交互式开发模式
对于需要多次调试的开发场景,推荐使用poetry shell
:
# 第一步:激活虚拟环境
poetry shell
# 第二步:执行训练脚本
python cleanrl/ppo.py \
--seed 1 \
--env-id CartPole-v0 \
--total-timesteps 50000
技术提示:成功激活虚拟环境后,终端提示符前会出现类似(cleanrl-iXg02GqF-py3.9)
的前缀,表明当前处于正确的开发环境中。
常见问题解决方案
Gymnasium兼容性问题
部分脚本如ddpg_continuous_action_jax.py
和ddpg_continuous_action.py
已迁移至gymnasium。若遇到兼容性问题,需安装特定版本的stable-baselines3:
poetry run pip install sb3==2.0.0a1
NVIDIA Ampere架构GPU支持
使用RTX 30系列等Ampere架构GPU时,可能会遇到CUDA兼容性问题。这是因为PyPI上的PyTorch预编译版本基于CUDA 10.2构建。解决方案是手动安装CUDA 11.3版本:
poetry run pip install torch==1.12.1 --upgrade --extra-index-url https://download.pytorch.org/whl/cu113
训练过程可视化
CleanRL默认使用TensorBoard记录训练指标,所有数据保存在runs
目录中。启动可视化界面命令如下:
tensorboard --logdir runs
TensorBoard将提供包括回报值、损失函数、学习率等关键指标的可视化,帮助开发者监控训练过程。
智能体表现视频录制
通过添加--capture_video
参数,可以录制智能体在环境中的表现视频:
python cleanrl/ppo.py \
--seed 1 \
--env-id CartPole-v0 \
--total-timesteps 50000 \
--capture_video
录制视频将保存在videos/{run_name}
目录下,方便直观评估智能体的学习效果。
参数说明与帮助文档
所有脚本都内置详细的参数说明,可通过--help
参数查看:
python cleanrl/ppo.py --help
输出内容包括:
- 实验配置参数(如实验名称、随机种子)
- 环境参数(环境ID、并行环境数量)
- 训练参数(总步数、学习率、批大小)
- 算法特定参数(GAE lambda、裁剪系数等)
- 硬件相关参数(是否使用CUDA)
最佳实践建议
- 开发阶段:使用
poetry shell
进入交互模式,便于多次调试和测试 - 参数调优:先从小规模实验开始(如减少
total-timesteps
),确认无误后再进行完整训练 - 监控训练:同时开启TensorBoard和视频录制,全方位监控训练过程
- 版本管理:注意不同脚本对依赖库版本的特定要求,特别是gymnasium相关脚本
通过以上指南,开发者可以快速上手CleanRL项目,开展深度强化学习实验和研究工作。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考