gluonts.torch.distributions.implicit_quantile_network 模块#

gluonts.torch.distributions.implicit_quantile_network.ImplicitQuantileModule(in_features: int, args_dim: Dict[str, int], domain_map: Callable[[...], Tuple[torch.Tensor]], concentration1: float = 1.0, concentration0: float = 1.0, output_domain_map=None, cos_embedding_dim: int = 64)[源代码]#

实现 Dabney 等人发表的论文 IQN for Distributional Reinforcement Learning (https://arxiv.org/abs/1806.06923) 中描述的隐式分位数网络(Implicit Quantile Network)。

forward(inputs: torch.Tensor)[源代码]#

定义每次调用时执行的计算。

所有子类都应重写此方法。

注意

虽然前向传播 (forward pass) 的实现需要在函数内部定义,但之后应调用 Module 实例本身,而不是直接调用此函数,因为前者会处理注册的钩子 (hooks),而后者会默默地忽略它们。

training: bool#

gluonts.torch.distributions.implicit_quantile_network.ImplicitQuantileNetwork(outputs: torch.Tensor, taus: torch.Tensor, validate_args=None)[源代码]#
隐式分位数 (Implicit Quantile) 的分布类,可从中采样或计算分位数损失 (quantile loss)。

参数

outputs – 隐式分位数网络 (Implicit Quantile Network) 的输出。

taus – 与相应输出对应的来自 Beta 或 Uniform 分布的张量随机数。
  • arg_constraints: Dict[str, torch.distributions.constraints.Constraint] = {}#

  • quantile_loss(value: torch.Tensor) torch.Tensor[源代码]#

sample(sample_shape=torch.Size([])) torch.Tensor[源代码]#
生成一个形状为 sample_shape 的样本,或者如果分布参数是批处理的,则生成形状为 sample_shape 的一批样本。
gluonts.torch.distributions.implicit_quantile_network.ImplicitQuantileNetworkOutput(output_domain: Optional[str] = None, concentration1: float = 1.0, concentration0: float = 1.0, cos_embedding_dim: int = 64)[源代码]#

基类: gluonts.torch.distributions.distribution_output.DistributionOutput

来自 Gouttes 等人于 2021 年发表的论文 Probabilistic Time Series Forecasting with Implicit Quantile Networks (https://arxiv.org/abs/2107.03743) 中描述的 IQN 的 DistributionOutput 类。

参数

output_domain – 可选的输出域映射。可以是“positive”、“unit”或 None。

taus – 与相应输出对应的来自 Beta 或 Uniform 分布的张量随机数。
  • concentration1 – 在训练期间采样 taus 时 Beta 分布的 Alpha 参数。

  • concentration0 – 在训练期间采样 taus 时 Beta 分布的 Beta 参数。

  • cos_embedding_dim – IQN 的 taus 嵌入层 (embedding layer) 的嵌入维度 (embedding dimension)。默认为 64。

  • args_dim: Dict[str, int] = {'quantile_function': 1}#

distr_cls#
gluonts.torch.distributions.implicit_quantile_network.ImplicitQuantileNetwork 的别名

distribution(distr_args, loc=0, scale=None) gluonts.torch.distributions.implicit_quantile_network.ImplicitQuantileNetwork[源代码]#

根据一组构造函数参数,以及可选的比例张量 (scale tensor),构建相关的分布。

参数

taus – 与相应输出对应的来自 Beta 或 Uniform 分布的张量随机数。
  • distr_args – 基础分布类型的构造函数参数。

  • loc – 可选张量,形状与结果分布的 batch_shape+event_shape 相同。

  • scale – 可选张量,形状与结果分布的 batch_shape+event_shape 相同。

类方法 domain_map(*args)[源代码]#

将参数转换为正确的形状和域。

域取决于分布的类型,而正确的形状通过重塑尾部轴 (trailing axis) 来获得,以便返回的张量定义了一个具有正确 event_shape 的分布。

属性 event_shape#

与输出对象兼容的每个独立事件的形状。

get_args_proj(in_features: int) torch.nn.modules.module.Module[源代码]#
in_features: int#
loss(target: torch.Tensor, distr_args: Tuple[torch.Tensor, ...], loc: Optional[torch.Tensor] = None, scale: Optional[torch.Tensor] = None) torch.Tensor[源代码]#

根据网络输出计算目标数据的损失。

taus – 与相应输出对应的来自 Beta 或 Uniform 分布的张量随机数。
  • 参数

  • target – 用于计算损失的目标时间序列的值。

  • distr_args – 可用于构建输出分布的参数。

  • loc – 分布的位置参数 (Location parameter),可选。

scale – 分布的比例参数 (Scale parameter),可选。

返回值

损失值,形状与 target 相同。

返回类型

loss_values

实现 Dabney 等人发表的论文 IQN for Distributional Reinforcement Learning (https://arxiv.org/abs/1806.06923) 中描述的隐式分位数网络(Implicit Quantile Network)。

gluonts.torch.distributions.implicit_quantile_network.QuantileLayer(num_output: int, cos_embedding_dim: int = 128)[源代码]#

来自 Dabney 等人发表的论文 IQN for Distributional Reinforcement Learning (https://arxiv.org/abs/1806.06923) 的隐式分位数层 (Implicit Quantile Layer)。

所有子类都应重写此方法。

注意

虽然前向传播 (forward pass) 的实现需要在函数内部定义,但之后应调用 Module 实例本身,而不是直接调用此函数,因为前者会处理注册的钩子 (hooks),而后者会默默地忽略它们。

training: bool#

forward(tau: torch.Tensor) torch.Tensor[源代码]#