RL Baselines Zoo 项目介绍
RL Baselines Zoo 是一个强化学习(RL)代理的集合,这些代理已经过训练,并且其超参数经过调优。该项目基于 Stable Baselines 构建。
项目目标
- 提供一个简单的接口来训练和体验 RL 代理。
- 对不同的强化学习算法进行基准测试。
- 为每种环境和 RL 算法提供调优的超参数。
- 在训练的代理中获得乐趣!
训练与体验
体验已训练的代理
可以通过简单的命令运行已训练的代理:
python enjoy.py --algo algo_name --env env_id
例如,体验在 Breakout 环境中运行 5000 步的 A2C 算法:
python enjoy.py --algo a2c --env BreakoutNoFrameskip-v4 --folder trained_agents/ -n 5000
要加载使用评估环境时的最佳模型:
python enjoy.py --algo algo_name --env env_id -f logs/ --exp-id 1 --load-best
训练代理
超参数定义在 hyperparameters/algo_name.yml
文件中,可以通过以下命令训练代理:
python train.py --algo algo_name --env env_id
例如,在 CartPole-v1 环境中使用 tensorboard:
python train.py --algo ppo2 --env CartPole-v1 --tensorboard-log /tmp/stable-baselines/
超参数调优
项目使用 Optuna 优化超参数。需要注意的是,目前不支持 ACER 和 DQN 算法的超参数搜索。
python train.py --algo ppo2 --env MountainCar-v0 -n 50000 -optimize --n-trials 1000 --n-jobs 2 \
--sampler tpe --pruner median
环境包装器与参数
可以在超参数配置中指定一个或多个包装器,例如:
env_wrapper:
- utils.wrappers.DoneOnSuccessWrapper:
reward_offset: 1.0
- utils.wrappers.TimeFeatureWrapper
可以通过命令行为环境构造函数指定关键字参数:
python enjoy.py --algo ppo2 --env MountainCar-v0 --env-kwargs goal_velocity:10
当前集合:超过 120 个训练代理
项目中包含了大量已经训练好的代理,覆盖了多种环境,包括 Atari 游戏、经典控制场景、Box2D 环境、PyBullet 环境以及 MiniGrid 环境等。
安装与使用
安装
需要安装一些基础依赖:
apt-get install swig cmake libopenmpi-dev zlib1g-dev ffmpeg
pip install -r requirements.txt
Docker 使用
项目支持 Docker,可以通过以下命令构建并运行 Docker 镜像:
./scripts/build_docker.sh # CPU 版本
USE_GPU=True ./scripts/build_docker.sh # GPU 版本
要运行脚本,可以通过以下命令:
./scripts/run_docker_cpu.sh python train.py --algo ppo2 --env CartPole-v1
项目贡献
如果你训练了一个未包含在集合中的代理,可以提交包含超参数和评分的 Pull Request 来贡献你的成果。