ray.rllib.models.distributions.Distribution#

class ray.rllib.models.distributions.Distribution[源代码]#

基类:ABC

分布在随机变量上的基类。

示例:

import torch
from ray.rllib.core.models.configs import MLPHeadConfig
from ray.rllib.models.torch.torch_distributions import TorchCategorical

model = MLPHeadConfig(input_dims=[1]).build(framework="torch")

# Create an action distribution from model logits
action_logits = model(torch.Tensor([[1]]))
action_dist = TorchCategorical.from_logits(action_logits)
action = action_dist.sample()

# Create another distribution from a dummy Tensor
action_dist2 = TorchCategorical.from_logits(torch.Tensor([0]))

# Compute some common metrics
logp = action_dist.logp(action)
kl = action_dist.kl(action_dist2)
entropy = action_dist.entropy()

方法

__init__

entropy

分布的熵。

from_logits

从logits创建一个分布。

get_partial_dist_cls

返回 TorchMultiActionDistribution 的一个部分子类。

kl

两个分布之间的KL散度。

logp

value 处计算的分布的对数似然

required_input_dim

返回输入参数张量所需的长度。

rsample

从动作分布中绘制一个重新参数化的样本。

sample

从分布中抽取一个样本。

to_deterministic

返回此分布的确定性等价物。