跳至内容

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 连接。

© . This site is unofficial and not affiliated with AMD.