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#
- 隐式分位数 (Implicit Quantile) 的分布类,可从中采样或计算分位数损失 (quantile loss)。
参数
outputs – 隐式分位数网络 (Implicit Quantile Network) 的输出。
- taus – 与相应输出对应的来自 Beta 或 Uniform 分布的张量随机数。
- 生成一个形状为 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#
与输出对象兼容的每个独立事件的形状。
- 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#
-
来自 Dabney 等人发表的论文