schola.scripts.sb3.settings.SB3ScriptArgs
类定义
class schola.scripts.sb3.settings.SB3ScriptArgs(enable_checkpoints=False, checkpoint_dir='./ckpt', save_freq=100000, name_prefix_override=None, export_onnx=False, save_final_policy=False, launch_unreal=False, port=None, executable_path=None, headless=False, map=None, fps=None, disable_script=False, timesteps=3000, pbar=False, disable_eval=False, enable_tensorboard=False, log_dir='./logs', log_freq=10, callback_verbosity=0, schola_verbosity=0, sb3_verbosity=1, save_replay_buffer=False, save_vecnormalize=False, resume_from=None, load_vecnormalize=None, load_replay_buffer=None, reset_timestep=False, policy_parameters=None, critic_parameters=None, activation=ActivationFunctionEnum.ReLU, algorithm_settings=, plugins=)基类: ScriptArgs
SB3 启动器中使用的脚本参数的顶层数据类。此数据类继承自 ScriptArgs,并包含用于训练算法、日志记录和其他配置的各种设置。通过指定时间步、日志记录选项、网络架构和算法特定设置等参数,可以轻松自定义训练过程。
参数
启用检查点
类型: bool
检查点目录
类型: str
保存频率
Type: int
覆盖名称前缀
类型: str | None
导出为 ONNX
类型: bool
保存最终策略
类型: bool
启动 Unreal
类型: bool
port
类型: int | None
executable_path
类型: str | None
无头模式
类型: bool
map
类型: str | None
帧率
类型: int | None
disable_script
类型: bool
时间步
Type: int
进度条
类型: bool
禁用评估
类型: bool
启用 TensorBoard
类型: bool
日志目录
类型: str
日志频率
Type: int
回调详细程度
Type: int
schola_verbosity
Type: int
SB3 详细程度
Type: int
保存回放缓冲区
类型: bool
保存 vecnormalize
类型: bool
resume_from
类型: str | None
加载 vecnormalize
类型: str | None
加载回放缓冲区
类型: str | None
重置时间步
类型: bool
策略参数
类型: List[int] | None
评论员参数
类型: List[int] | None
activation
类型: ActivationFunctionEnum
算法设置
类型: PPOSettings | SACSettings
插件
类型: List[Sb3LauncherExtension]
属性
activation
类型: ActivationFunctionEnum
默认: 'relu'
策略和评论员网络中使用的激活函数。它确定应用于神经网络每个层的非线性激活函数。常见选项包括 ReLU、Tanh 和 Sigmoid。激活函数的选择会影响模型的性能,并可能取决于环境的特定特征。默认为 ReLU,但您可以根据需要选择其他函数。
算法设置
类型: PPOSettings | SACSettings
要使用的训练算法的设置。根据所选算法,可以是 PPOSettings 或 SACSettings。此属性允许通过简单地更改设置类的实例来轻松切换不同的算法(例如 PPO 或 SAC)。默认值为 PPOSettings,适用于大多数环境,除非另有说明。
回调详细程度
Type: int
默认: 0
回调的详细程度。这控制训练期间使用的任何回调输出的详细程度。
检查点目录
启用保存检查点。
评论员参数
类型: List[int]
默认值: None
代表评论员(价值函数)网络架构的层宽度列表。这定义了评论员网络每个隐藏层的神经元数量。例如,[64, 64] 将创建一个具有两个隐藏层的评论员网络,每个隐藏层包含 64 个神经元。这仅适用于使用评论员的算法(例如 SAC)。如果设置为 None,它将使用算法定义的默认架构。
禁用评估
类型: bool
Default: False
是否禁用训练后的评估运行。如果设置为 True,则在训练完成后将跳过评估。
disable_script
表示是否禁用 Unreal Engine Schola 插件中的自动启动脚本设置的标志。
启用检查点
启用保存检查点
启用 TensorBoard
类型: bool
Default: False
是否启用 TensorBoard 日志记录。
executable_path
独立环境启动时的独立可执行文件路径。
导出为 ONNX
是仅保存检查点还是将模型导出为 ONNX 格式。
帧率
运行独立模式时使用的固定帧率,如果为 None,则不使用固定时间步长。
无头模式
标志,指示独立 Unreal Engine 进程是否应在无头模式下运行。
启动 Unreal
标志,指示脚本是否应启动独立的 Unreal Engine 进程。
加载回放缓冲区
类型: str
默认值: None
恢复训练时要加载的已保存回放缓冲区的路径。这允许加载先前保存的回放缓冲区,这对于继续使用相同经验集进行训练很有用。路径应指向 Stable Baselines3 创建的有效回放缓冲区文件。如果设置为 None,则不会加载任何回放缓冲区,而是创建一个新的。
加载 vecnormalize
类型: str
默认值: None
恢复训练时要加载的已保存向量归一化统计信息的路径。这允许加载先前训练会话的归一化统计信息,从而在恢复训练时确保观察结果的一致归一化。如果设置为 None,则不会加载任何向量归一化统计信息。
日志目录
类型: str
默认: './logs'
用于保存 TensorBoard 日志的目录。
日志频率
Type: int
默认: 10
将训练指标记录到 TensorBoard 的频率。这决定了(以训练步数为单位)将训练指标记录到 TensorBoard 的频率。值为 10 表示每 10 个训练步将记录一次指标。
map
启动独立的 Unreal Engine 进程时要加载的地图。
名称前缀
覆盖名称前缀
覆盖检查点文件的名称前缀(例如,SAC、PPO 等)。
进度条
类型: bool
Default: False
训练期间是否显示进度条。需要安装 TQDM 和 Rich。
插件
类型: List[Sb3LauncherExtension]
可用于扩展 launch.py 行为的插件列表。
策略参数
类型: List[int]
默认值: None
代表策略网络架构的层宽度列表。这定义了策略网络每个隐藏层的神经元数量。例如,[64, 64] 将创建一个具有两个隐藏层的策略网络,每个隐藏层包含 64 个神经元。如果设置为 None,它将使用算法定义的默认架构。
port
连接到 Unreal Engine 进程的端口,如果为 None,则在独立模式运行时会自动选择一个开放的端口。
重置时间步
类型: bool
Default: False
从保存的模型恢复训练时是否重置内部时间步计数器。如果设置为 True,将把时间步计数器重置为 0。
resume_from
类型: str
默认值: None
要从中恢复训练的已保存模型的路径。这允许从先前保存的检查点继续训练。路径应指向 Stable Baselines3 创建的有效模型文件。如果设置为 None,则将从头开始训练。
保存最终策略
训练完成后是否保存最终策略。
保存频率
保存检查点的频率。
保存回放缓冲区
类型: bool
Default: False
保存检查点时是否保存回放缓冲区。这允许从回放缓冲区的相同状态恢复训练。
保存 vecnormalize
类型: bool
Default: False
保存检查点时是否保存向量归一化统计信息。这对于需要对观测值进行归一化的环境很有用,并且允许在恢复训练时进行一致的归一化。
SB3 详细程度
Type: int
Default: 1
Stable Baselines3 日志记录的详细程度。这控制训练期间 Stable Baselines3 组件输出的详细程度。
schola_verbosity
Type: int
默认: 0
Schola 特定日志记录的详细程度。这控制训练期间 Schola 相关组件输出的详细程度。
时间步
Type: int
默认: 3000
训练智能体的总时间步数。这是用于训练的环境总步数。应根据环境的复杂性和所需的训练时长来设置此值。较高的值通常会导致更好的性能,但也会增加训练时间。
方法
__init__
__init__(enable_checkpoints=False, checkpoint_dir='./ckpt', save_freq=100000, name_prefix_override=None, export_onnx=False, save_final_policy=False, launch_unreal=False, port=None, executable_path=None, headless=False, map=None, fps=None, disable_script=False, timesteps=3000, pbar=False, disable_eval=False, enable_tensorboard=False, log_dir='./logs', log_freq=10, callback_verbosity=0, schola_verbosity=0, sb3_verbosity=1, save_replay_buffer=False, save_vecnormalize=False, resume_from=None, load_vecnormalize=None, load_replay_buffer=None, reset_timestep=False, policy_parameters=None, critic_parameters=None, activation=ActivationFunctionEnum.ReLU, algorithm_settings=, plugins=)返回类型: None
make_unreal_connection
make_unreal_connection()基于脚本参数创建 Unreal Engine 连接。