跳至内容

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
© . This site is unofficial and not affiliated with AMD.