训练执行和结果分析#
本节介绍如何执行强化学习训练,以及如何分析和使用训练结果。
启动训练#
基本训练命令#
# 使用默认参数训练(SKRL 框架)
uv run scripts/train.py --env cartpole
# 指定 RL 框架
uv run scripts/train.py --env cartpole --rllib skrl
uv run scripts/train.py --env cartpole --rllib rslrl
# 指定仿真后端
uv run scripts/train.py --env cartpole --sim-backend np
# 指定训练后端(仅 SKRL)
uv run scripts/train.py --env cartpole --rllib skrl --train-backend jax
uv run scripts/train.py --env cartpole --rllib skrl --train-backend torch
高级训练配置#
# 使用 SKRL 自定义训练参数
uv run scripts/train.py --env cartpole \
--rllib skrl \
--num-envs 1024 \
--train-backend jax \
--sim-backend np
# 使用 RSLRL 自定义训练参数
uv run scripts/train.py --env cartpole \
--rllib rslrl \
--num-envs 1024 \
--sim-backend np
# 注意:学习率等参数需要通过配置文件或代码覆盖设置
# 启用渲染监控训练过程
uv run scripts/train.py --env cartpole --render
不同框架配置#
系统支持不同的 RL 框架,具有不同的配置系统:
SKRL 框架:支持 JAX 和 PyTorch 训练后端,可通过 Python 数据类为每个后端配置参数
RSLRL 框架:支持 PyTorch 后端,通过 Python 数据类(RslrlCfg)进行配置
对于 SKRL,系统支持为不同训练后端(JAX/Torch)配置不同的强化学习参数。例如:
支持的命令行参数#
参数 |
说明 |
默认值 |
|---|---|---|
|
环境名称 |
|
|
RL 框架 (skrl/rslrl) |
|
|
仿真后端 (np) |
自动选择 |
|
训练后端 (jax/torch,仅 SKRL) |
自动选择 |
|
并行环境数量 |
2048 |
|
启用渲染 |
False |
注意: 其他参数如学习率、网络结构等需要通过单独文件设置。
训练过程监控#
TensorBoard 监控#
启动 TensorBoard 查看训练进度:
uv run tensorboard --logdir runs/{env-name}
例如:
uv run tensorboard --logdir runs/cartpole
模型评估和测试#
使用训练好的策略#
# 自动寻找最佳策略测试(推荐)
uv run scripts/play.py --env cartpole
# 手动指定策略文件测试
uv run scripts/play.py --env cartpole --policy runs/cartpole/nn/best_agent.pickle
# 指定测试环境数量
uv run scripts/play.py --env cartpole --num-envs 100
说明:系统会自动在
runs/cartpole/目录下寻找最新、最佳的策略文件进行测试。