跳至内容

schola.sb3.action_space_patch.HybridDistribution

类定义

class schola.sb3.action_space_patch.HybridDistribution(
distributions,
discrete_norm_factor=1.0,
continuous_norm_factor=1.0
)

基类: DiagGaussianDistribution

支持离散和连续子分布的复合分布。

参数

分布

类型: OrderedDict[str, Distribution]
用于复合分布的分布字典。

离散归一化因子

类型: float, 可选
默认值: 1.0
离散动作的归一化因子。

连续归一化因子

类型: float, 可选
默认值: 1.0
连续动作的归一化因子。

属性

分布

类型: OrderedDict[str, Distribution]
用于复合分布的分布字典。

属性

action_dim

类型: int (属性)
与此分布对应的动作张量的大小。

返回: 与此分布对应的动作张量的大小。

action_dims

类型: Dict[str, int] (属性)
分布的每个分支对应的动作张量的大小。

返回: 一个将分布分支映射到该分支对应动作张量大小的字典。

layer_dim

类型: int (属性)
此分布所需的神经元数量。

返回: 此分布所需的神经元数量。

layer_dims

类型: Dict[str, int] (属性)
每个分布分支所需的神经元数量。

返回: 一个将分布分支映射到所需神经元数量的字典。

log_std_dim

类型: int (属性)
对数标准差所需的神经元数量。

返回: 对数标准差所需的神经元数量。

log_std_dims

类型: Dict[str, int] (属性)
每个分支对数标准差所需的神经元数量。

返回: 一个将分布分支映射到对数标准差所需神经元数量的字典。

方法

__init__

__init__(distributions, discrete_norm_factor=1.0, continuous_norm_factor=1.0)

参数

  • distributions (OrderedDict) – 用于复合分布的分布字典
  • discrete_norm_factor (float, 可选) – 离散动作的归一化因子,默认为 1.0
  • continuous_norm_factor (float, 可选) – 连续动作的归一化因子,默认为 1.0

action_generator

action_generator(action)

接受来自此分布的动作样本,并生成与分布的每个分支相对应的动作(例如,如果我们有两个 box 空间,它将生成从这些分布中采样的 2 个值的序列)。

参数

  • action (th.Tensor) – 用于生成子动作的动作

生成: th.Tensor – 与分布分支对应的子动作

返回类型: Iterable[Tensor]

actions_from_params

actions_from_params(action_logits, log_std, deterministic=False)

根据其参数从概率分布返回样本。

参数

  • action_logits (Tensor) – 动作 logits
  • log_std (Tensor) – 对数标准差
  • deterministic (bool, 可选) – 是否返回确定性动作,默认为 False

返回: Tensor – 采样动作

entropy

entropy()

返回概率的香农熵。

返回: Tensor – 熵,如果未知解析形式则为 None

get_actions

get_actions(deterministic=False)

根据概率分布返回动作。

参数

  • deterministic (bool, 可选) – 是否返回确定性动作,默认为 False

返回: 采样动作

log_prob

log_prob(actions)

根据分布获取动作的对数概率。

参数

  • actions (Tensor) – 要评估的动作

返回: Tensor – 对数概率

log_prob_from_params

log_prob_from_params(mean_actions, log_std)

计算给定分布参数下采取某个动作的对数概率。

参数

  • mean_actions (Tensor) – 平均动作
  • log_std (Tensor) – 对数标准差

返回: Tuple[Tensor, Tensor] – 对数概率和熵

map_dists

map_dists(func, normalize=False)

将一个函数映射到复合分布中的各个分布上。

参数

  • func (Callable[[Distribution], Any]) – 要映射到分布上的函数
  • normalize (bool, 可选) – 是否使用归一化因子对函数输出进行归一化,默认为 False

mode

mode()

从概率分布返回最可能的动作(确定性输出)。

返回: Tensor – 随机动作

proba_distribution

proba_distribution(mean_actions, log_std)

根据其参数(均值、标准差)创建分布。

参数

  • mean_actions (Tensor) – 平均动作
  • log_std (Tensor) – 对数标准差

proba_distribution_net

proba_distribution_net(latent_dim, log_std_init=0.0)

创建代表该分布的层和参数:一个输出将是高斯分布的均值,另一个参数将是标准差(实际上是对数标准差,以便允许负值)。

参数

  • latent_dim (int) – 策略最后一层的维度(在动作层之前)
  • log_std_init (float, 可选) – 对数标准差的初始值,默认为 0.0

sample

sample()

从概率分布返回一个样本。

返回: Tensor – 随机动作

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