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