schola-sb3 命令
此脚本使用 Schola 和各种配置选项来训练 Stable Baselines3 模型,包括训练、检查点和网络架构。
用法
usage: schola-sb3 [-h] [--launch-unreal] [--executable-path EXECUTABLE_PATH] [--headless] [-p PORT] [--map MAP] [--fps FPS] [--disable-script] [-scholav SCHOLA_VERBOSITY] [--enable-checkpoints] [--checkpoint-dir CHECKPOINT_DIR] [--save-freq SAVE_FREQ] [--name-prefix NAME_PREFIX] [--export-onnx] [--save-final-policy] [--save-replay-buffer] [--save-vecnormalize] [--resume-from RESUME_FROM] [--load-vecnormalize LOAD_VECNORMALIZE] [--load-replay-buffer LOAD_REPLAY_BUFFER] [--reset-timestep] [--policy-parameters POLICY_PARAMETERS [POLICY_PARAMETERS ...]] [--critic-parameters CRITIC_PARAMETERS [CRITIC_PARAMETERS ...]] {PPO,SAC} ...可选参数
schola-sb3 脚本的标准命令行参数。
Unreal 进程参数
--launch-unreal
自动启动 Unreal Engine
- 默认:
False - 必需: 否
--executable-path
Unreal Engine 可执行文件的路径
- 类型: str
- 必需: 否
--headless
以无头模式运行 Unreal Engine
- 默认:
False - 必需: False0
-p, --port
Unreal Engine 通信端口
- 默认:
15151 - 类型: int
- 必需: 否
--map
在 Unreal Engine 中加载的地图
- 类型: str
- 必需: 否
--fps
Unreal Engine 的目标 FPS
- 默认:
60 - 类型: int
- 必需: 否
--disable-script
在 Unreal Engine 中禁用脚本执行
- 默认:
False - 必需: 否
日志参数
-scholav, --schola-verbosity
Schola 环境的详细程度级别
- 默认:
0 - 类型: 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 - 必需: 否
--save-replay-buffer
在训练期间保存回放缓冲区 (如果保存检查点)
- 默认:
False - 必需: 否
--save-vecnormalize
在训练期间保存 VecNormalize 参数 (如果保存检查点)
- 默认:
False - 必需: 否
恢复参数
--resume-from
从已保存的模型恢复训练的路径
- 类型: str
- 必需: 否
--load-vecnormalize
加载已保存的 VecNormalize 参数的路径 (如果从检查点恢复)
- 类型: str
- 必需: 否
--load-replay-buffer
加载已保存的回放缓冲区的路径 (如果从检查点恢复)
- 类型: str
- 必需: 否
--reset-timestep
从检查点恢复时将时间步计数器重置为 0
- 默认:
False - 必需: 否
网络架构参数
--policy-parameters
策略的网络架构
- 类型: int (允许多个值)
- 必需: 否
--critic-parameters
Critic 的网络架构
- 类型: int (允许多个值)
- 必需: 否
子命令
PPO
Proximal Policy Optimization
schola-sb3 PPO [-h] [--learning-rate LEARNING_RATE] [--n-steps N_STEPS] [--batch-size BATCH_SIZE] [--n-epochs N_EPOCHS] [--gamma GAMMA] [--gae-lambda GAE_LAMBDA] [--clip-range CLIP_RANGE] [--normalize-advantage] [--ent-coef ENT_COEF] [--vf-coef VF_COEF] [--max-grad-norm MAX_GRAD_NORM] [--use-sde] [--sde-sample-freq SDE_SAMPLE_FREQ]可选参数
--learning-rate
PPO 算法的学习率
- Default:
0.0003 - 类型: float
- 必需: False
必需: False
--uffer-size
SAC 算法的回放缓冲区大小
- 默认:
1000000 - 类型: int
- 必需: False
--learning-starts
在策略更新之前在每个环境中执行的步数
- 默认:
2048 - **类型:**int
- 必需: False
--batch-size
每次更新从回放缓冲区中提取的样本数
- 默认:
64 - **类型:**int
- 必需: False
--n-epochs
每次更新训练策略的 epoch 数
- 默认:
10 - **类型:**int
- 必需: False
--gamma
PPO 算法的折扣因子
- Default:
0.99 - 类型: float
- 必需: False
--gae-lambda
PPO 算法的 GAE lambda 值
- 默认:
0.95 - 类型: float
- 必需: False
--clip-range
PPO 算法的裁剪范围
- 默认:
0.2 - 类型: float
- 必需: False
--normalize-advantage
是否对优势函数进行归一化
- Default:
False - 常量:
True - 必需: False
--ent-coef
PPO 算法的熵系数
- 默认:
0.0 - 类型: float
- 必需: False
--vf-coef
PPO 算法的值函数系数
- 默认:
0.5 - 类型: float
- 必需: False
--max-grad-norm
PPO 算法的最大梯度范数
- 默认:
0.5 - 类型: float
- 必需: False
--use-sde
是否对 PPO 算法使用状态相关探索
- Default:
False - 常量:
True - 必需: False
--sde-sample-freq
PPO 算法从 SDE 采样的频率
- Default:
-1 - 类型: int
- 必需: False
SAC
Soft Actor-Critic
schola-sb3 SAC [-h] [--learning-rate LEARNING_RATE] [--buffer-size BUFFER_SIZE] [--learning-starts LEARNING_STARTS] [--batch-size BATCH_SIZE] [--tau TAU] [--gamma GAMMA] [--train-freq TRAIN_FREQ] [--gradient-steps GRADIENT_STEPS] [--optimize-memory-usage] [--ent-coef ENT_COEF] [--target-update-interval TARGET_UPDATE_INTERVAL] [--target-entropy TARGET_ENTROPY] [--use-sde] [--sde-sample-freq SDE_SAMPLE_FREQ]可选参数
--learning-rate
SAC 算法的学习率
- Default:
0.0003 - 类型: float
- 必需: False
--buffer-size
SAC 算法的回放缓冲区大小
- 默认:
1000000 - 类型: int
- 必需: False
--learning-starts
SAC 算法开始学习前的步数
- Default:
100 - 类型: int
- 必需: False
--batch-size
每次更新从回放缓冲区中提取的样本数
- Default:
256 - 类型: int
- 必需: False
--tau
SAC 算法的 tau 值
- 默认:
0.005 - 类型: float
- 必需: False
--gamma
SAC 算法的折扣因子
- Default:
0.99 - 类型: float
- 必需: False
--train-freq
SAC 算法训练策略的频率
- Default:
1 - 类型: int
- 必需: False
--gradient-steps
SAC 算法的梯度步数
- Default:
1 - 类型: int
- 必需: False
--optimize-memory-usage
是否为 SAC 算法优化内存使用
- Default:
False - 常量: True
- 必需: False
--ent-coef
SAC 算法的熵系数
- 默认: ‘auto’
- 类型: str
- 必需: False
--target-update-interval
SAC 算法更新目标网络的频率
- Default:
1 - 类型: int
- 必需: False
--target-entropy
SAC 算法的目标熵
- 默认: ‘auto’
- 类型: str
- 必需: False
--use-sde
是否对 SAC 算法使用状态相关探索
- Default:
False - 常量:
True - 必需: False
--sde-sample-freq
SAC 算法从 SDE 采样的频率
- Default:
-1 - 类型: int
- 必需: False