schola-rllib 命令
此脚本使用 Schola 训练 RLlib 模型,允许通过命令行参数自定义训练、日志记录、网络架构和资源分配。
用法
usage: schola-rllib [-h] [--launch-unreal] [--executable-path EXECUTABLE_PATH] [--headless] [-p PORT] [--map MAP] [--fps FPS] [--disable-script] [-t TIMESTEPS] [--learning-rate LEARNING_RATE] [--minibatch-size MINIBATCH_SIZE] [--train-batch-size-per-learner TRAIN_BATCH_SIZE_PER_LEARNER] [--num-sgd-iter NUM_SGD_ITER] [--gamma GAMMA] [-scholav SCHOLA_VERBOSITY] [-rllibv RLLIB_VERBOSITY] [--enable-checkpoints] [--checkpoint-dir CHECKPOINT_DIR] [--save-freq SAVE_FREQ] [--name-prefix NAME_PREFIX_OVERRIDE] [--export-onnx] [--save-final-policy] [--resume-from RESUME_FROM] [--fcnet-hiddens FCNET_HIDDENS [FCNET_HIDDENS ...]] [--num-workers NUM_WORKERS] [--num-envs-per-worker NUM_ENVS_PER_WORKER] [--num-cpus-per-worker NUM_CPUS_PER_WORKER] [--num-gpus NUM_GPUS] {PPO,APPO,IMPALA} ...Unreal 进程参数
--launch-unreal
自动启动 Unreal Engine
- 默认:
False - 必需:
--executable-path
Unreal Engine 可执行文件的路径
- 类型: str
- 必需: 否
--headless
以无头模式运行 Unreal Engine
- 默认:
False - 必需: 否
-p, --port
Unreal Engine 通信端口
- 默认:
15151 - 类型: int
- 必需: 否
--map
在 Unreal Engine 中加载的地图
- 类型: str
- 必需: 否
--fps
Unreal Engine 的目标 FPS
- 默认:
60 - 类型: int
- 必需: 否
--disable-script
禁用在 Unreal Engine 中执行脚本
- 默认:
False - 必需: 否
训练参数
-t, --timesteps
训练的步数
- 默认:
1000000 - 类型: int
- 必需: 否
--learning-rate
训练的学习率
- 默认:
0.0003 - 类型: float
- 必需: 否
--minibatch-size
训练的小批量大小
- 默认:
32 - 类型: int
- 必需: 否
--train-batch-size-per-learner
每个学习者的训练批次大小
- 默认:
500 - 类型: int
- 必需: 否
--num-sgd-iter
SGD 迭代次数
- 默认:
10 - 类型: int
- 必需: 否
--gamma
未来奖励的折扣因子
- 默认:
0.99 - 类型: float
- 必需: 否
日志参数
-scholav, --schola-verbosity
Schola 环境的详细程度级别
- 默认:
0 - 类型: int
- 必需: 否
-rllibv, --rllib-verbosity
RLlib 的详细程度级别
- 默认:
1 - 类型: int
- 必需: 否
检查点参数
--enable-checkpoints
启用保存检查点
- 默认:
False - 必需: 否
--checkpoint-dir
保存检查点的目录
- 默认:
'./ckpt' - 类型: str
- 必需: 否
--save-freq
保存检查点的频率
- 默认:
100000 - 类型: int
- 必需: 否
--name-prefix
覆盖检查点文件的名称前缀 (例如 SAC, PPO 等)
- 类型: str
- 必需: 否
--export-onnx
将模型导出为 ONNX 格式,而不仅仅是保存检查点
- 默认:
False - 必需: 否
--save-final-policy
训练完成后保存最终策略
- 默认:
False - 必需: 否
--resume-from
用于恢复训练的已保存模型的路径
- 类型: str
- 必需: 否
网络架构参数
--fcnet-hiddens
全连接网络隐藏层大小
- 类型: int (允许多个值)
- 必需: 否
资源参数
--num-workers
工作进程数
- 默认:
2 - 类型: int
- 必需: 否
--num-envs-per-worker
每个工作进程的环境数
- 默认:
1 - 类型: int
- 必需: 否
--num-cpus-per-worker
每个工作进程的 CPU 数量
- 默认:
1 - 类型: int
- 必需: 否
--num-gpus
使用的 GPU 数量
- 默认:
0 - 类型: int
- 必需: 否
子命令
PPO
Proximal Policy Optimization (近端策略优化)
schola-rllib PPO [-h] [--disable-gae] [--gae-lambda GAE_LAMBDA] [--clip-param CLIP_PARAM]可选参数
--disable-gae
禁用 PPO 算法的广义优势估计 (GAE)
- 默认值:
True - 必需: False
--gae-lambda
PPO 算法的 GAE lambda 值
- 默认:
0.95 - 类型: float
- 必需: False
--clip-param
PPO 算法的裁剪范围
- 默认:
0.2 - 类型: float
- 必需: False
APPO
Asynchronous Proximal Policy Optimization (异步近端策略优化) 算法。
schola-rllib APPO [-h] [--disable-vtrace] [--vtrace-clip-rho-threshold VTRACE_CLIP_RHO_THRESHOLD] [--vtrace-clip-pg-rho-threshold VTRACE_CLIP_PG_RHO_THRESHOLD] [--disable-gae] [--gae-lambda GAE_LAMBDA] [--clip-param CLIP_PARAM]可选参数
- APPO 配置的算法特定参数
--disable-vtrace
禁用 V-trace 算法
- 默认值:
True - 必需: False
--vtrace-clip-rho-threshold
V-trace rho 值的裁剪阈值
- 默认值:
1.0 - 类型: float
- 必需: False
--vtrace-clip-pg-rho-threshold
策略梯度中 V-trace rho 值的裁剪阈值
- 默认值:
1.0 - 类型: float
- 必需: False
--disable-gae
禁用 PPO 算法的广义优势估计 (GAE)
- 默认值:
True - 必需: False
--gae-lambda
PPO 算法的 GAE lambda 值
- 默认:
0.95 - 类型: float
- 必需: False
--clip-param
PPO 算法的裁剪范围
- 默认:
0.2 - 类型: float
- 必需: False
IMPALA
Importance Weighted Actor-Learner Architecture (重要性加权 Actor-Learner 架构) 算法。
schola-rllib IMPALA [-h] [--disable-vtrace] [--vtrace-clip-rho-threshold VTRACE_CLIP_RHO_THRESHOLD] [--vtrace-clip-pg-rho-threshold VTRACE_CLIP_PG_RHO_THRESHOLD]可选参数
- IMPALA 配置的算法特定参数
--disable-vtrace
禁用 V-trace 算法
- 默认值:
True - 必需: False
--vtrace-clip-rho-threshold
V-trace rho 值的裁剪阈值
- 默认值:
1.0 - 类型: float
- 必需: False
--vtrace-clip-pg-rho-threshold
策略梯度中 V-trace rho 值的裁剪阈值
- 默认值:
1.0 - 类型: float
- 必需: False