schola.sb3.action_space_patch.PatchedPPO
类定义
class schola.sb3.action_space_patch.PatchedPPO( policy, env, learning_rate=0.0003, n_steps=2048, batch_size=64, n_epochs=10, gamma=0.99, gae_lambda=0.95, clip_range=0.2, clip_range_vf=None, normalize_advantage=True, ent_coef=0.0, vf_coef=0.5, max_grad_norm=0.5, use_sde=False, sde_sample_freq=-1, target_kl=None, stats_window_size=100, tensorboard_log=None, policy_kwargs=None, verbose=0, seed=None, device='auto', _init_setup_model=True)基类: PPO
参数
策略
类型: str | Type[ActorCriticPolicy]
要使用的策略模型(MlpPolicy, CnnPolicy, …)。
env
类型: Env | VecEnv | str
学习的环境。
learning_rate
类型: float | Callable[[float], float]
Default: 0.0003
学习率,它可以是当前剩余进度的函数。
n_steps
Type: int
默认: 2048
每次更新要为每个环境运行的步数。
batch_size
Type: int
默认: 64
小批量大小。
n_epochs
Type: int
默认: 10
优化代理损失时的 epoch 数量。
gamma
类型: float
Default: 0.99
折扣因子。
gae_lambda
类型: float
默认: 0.95
用于广义优势估计的偏差与方差权衡的因子。
clip_range
类型: float | Callable[[float], float]
默认: 0.2
裁剪参数,它可以是当前剩余进度的函数。
clip_range_vf
类型: None | float | Callable[[float], float]
默认值: None
值函数的裁剪参数,它可以是当前剩余进度的函数。
normalize_advantage
类型: bool
默认值: True
是否对优势进行归一化。
ent_coef
类型: float
默认: 0.0
损失计算的熵系数。
vf_coef
类型: float
默认: 0.5
损失计算的值函数系数。
max_grad_norm
类型: float
默认: 0.5
梯度裁剪的最大值。
use_sde
类型: bool
Default: False
是否使用广义状态依赖性探索 (gSDE)。
sde_sample_freq
Type: int
Default: -1
在使用 gSDE 时,每 n 步采样一个新的噪声矩阵。
target_kl
类型: float | None
默认值: None
限制更新之间的 KL 散度。
stats_window_size
Type: int
Default: 100
用于 rollout 日志记录的窗口大小,指定用于平均报告的成功率和回合长度的回合数。
tensorboard_log
类型: str | None
默认值: None
TensorBoard 的日志位置(如果为 None,则不记录)。
policy_kwargs
类型: Dict[str, Any] | None
默认值: None
在创建策略时传递给策略的其他参数。
详细
Type: int
默认: 0
详细程度:0 无输出,1 信息,2 调试。
seed
类型: int | None
默认值: None
伪随机生成器的种子。
device
类型: device | str
默认: 'auto'
代码应运行的设备(cpu, cuda, …)。
_init_setup_model
类型: bool
默认值: True
在实例化时是否构建网络。
属性
记录器
记录器的 getter 函数。
policy_aliases
PPO 算法的策略别名。
rollout_buffer
用于收集经验的 rollout 缓冲区。
策略
策略模型。
observation_space
环境的观察空间。
action_space
环境的动作空间。
n_envs
并行环境的数量。
lr_schedule
学习率调度。
方法
__init__
__init__( policy, env, learning_rate=0.0003, n_steps=2048, batch_size=64, n_epochs=10, gamma=0.99, gae_lambda=0.95, clip_range=0.2, clip_range_vf=None, normalize_advantage=True, ent_coef=0.0, vf_coef=0.5, max_grad_norm=0.5, use_sde=False, sde_sample_freq=-1, target_kl=None, stats_window_size=100, tensorboard_log=None, policy_kwargs=None, verbose=0, seed=None, device='auto', _init_setup_model=True)初始化 PatchedPPO 算法。
collect_rollouts
collect_rollouts(env, callback, rollout_buffer, n_rollout_steps)使用当前策略收集经验并填充 RolloutBuffer。
get_env
get_env()返回当前环境(如果未定义,则可能为 None)。
get_parameters
get_parameters()返回代理的参数。
get_vec_normalize_env
get_vec_normalize_env()如果存在,则返回训练环境的 VecNormalize 包装器。
learn
learn(total_timesteps, callback=None, log_interval=1, eval_env=None, eval_freq=-1, n_eval_episodes=5, tb_log_name="PPO", eval_log_path=None, reset_num_timesteps=True)返回训练好的模型。
load
load(path, env=None, device='auto', custom_objects=None, print_system_info=False, force_reset=True, **kwargs)从 zip 文件加载模型。
predict
predict(observation, state=None, episode_start=None, deterministic=False)从观察(和可选的隐藏状态)获取策略动作。
save
save(path, exclude=None, include=None)将对象的全部属性和模型参数保存到 zip 文件中。
set_env
set_env(env, force_reset=True)检查环境的有效性,如果一致,则将其设置为当前环境。
set_logger
set_logger(logger)记录器对象的 setter 函数。
set_parameters
set_parameters(load_path_or_dict, exact_match=True, device='auto')从给定的 zip 文件或包含不同模块参数的嵌套字典加载参数(参见 get_parameters)。
set_random_seed
set_random_seed(seed=None)设置伪随机生成器(python, numpy, pytorch, gym, action_space)的种子。
train
train()使用当前收集的 rollout 缓冲区更新策略。