paddlets.models.forecasting.dl.informer
- class InformerModel(in_chunk_len: int, out_chunk_len: int, start_token_len: int = 0, skip_chunk_len: int = 0, sampling_stride: int = 1, loss_fn: ~typing.Callable[[...], ~paddle.Tensor] = <function mse_loss>, optimizer_fn: ~typing.Callable[[...], ~paddle.optimizer.optimizer.Optimizer] = <class 'paddle.optimizer.adam.Adam'>, optimizer_params: ~typing.Dict[str, ~typing.Any] = {'learning_rate': 0.001}, eval_metrics: ~typing.List[str] = [], callbacks: ~typing.List[~paddlets.models.common.callbacks.callbacks.Callback] = [], batch_size: int = 128, max_epochs: int = 10, verbose: int = 1, patience: int = 4, seed: ~typing.Union[None, int] = None, d_model: int = 512, nhead: int = 8, ffn_channels: int = 2048, num_encoder_layers: int = 2, num_decoder_layers: int = 1, activation: str = 'relu', dropout_rate: float = 0.1)[源代码]
基类:
PaddleBaseModelImplInformer[1] 是2021年提出的一种编码器-解码器架构的深度学习模型. 核心特征是”ProbSparse注意力”机制, 在注意力计算上达到了O(LlogL)的时间复杂度和O(LlogL)的空间复杂度.
[1] Zhou H, et al. “Informer: Beyond efficient transformer for long sequence time-series forecasting”, https://arxiv.org/abs/2012.07436
- 参数
in_chunk_len (int) – 模型输入的时间序列长度.
out_chunk_len (int) – 模型输出的时间序列长度.
start_token_len (int) – 解码器输入时间序列的填充长度.
skip_chunk_len (int) – 可选变量, 输入序列与输出序列之间跳过的序列长度, 既不作为特征也不作为序测目标使用, 默认值为0
sampling_stride (int) – 相邻样本间的采样间隔.
loss_fn (Callable[..., paddle.Tensor]|None) – 损失函数.
optimizer_fn (Callable[..., Optimizer]) – 优化算法.
optimizer_params (Dict[str, Any]) – 优化器参数.
eval_metrics (List[str]) – 模型训练过程中的需要观测的评估指标.
callbacks (List[Callback]) – 自定义callback函数.
batch_size (int) – 训练数据或评估数据的批大小.
max_epochs (int) – 训练的最大轮数.
verbose (int) – 模型训练过程中打印日志信息的间隔.
patience (int) – 模型训练过程中, 当评估指标超过一定轮数不再变优,模型提前停止训练.
seed (int|None) – 全局随机数种子, 注: 保证每次模型参数初始化一致.
d_model (int) – 编码器/解码器的输入特征维度.
nhead (int) – 多头注意力机制中的头数.
ffn_channels (int) – FFN网络中Conv1D的通道数.
num_encoder_layers (int) – 编码器中的编码层数.
num_decoder_layers (int) – 解码器中的解码层数.
activation (str) – 编码器/解码器中间层的激活函数, 可选[“relu”, “gelu”].
dropout_rate (float) – 神经元丢弃概率.
- _in_chunk_len
模型输入的时间序列长度.
- Type
int
- _out_chunk_len
模型输出的时间序列长度.
- Type
int
- _start_token_len
解码器输入时间序列的填充长度.
- Type
int
- _skip_chunk_len
可选变量, 输入序列与输出序列之间跳过的序列长度, 既不作为特征也不作为序测目标使用, 默认值为0
- Type
int
- _sampling_stride
相邻样本间的采样间隔.
- Type
int
- _loss_fn
损失函数.
- Type
Callable[…, paddle.Tensor]|None
- _optimizer_fn
优化算法.
- Type
Callable[…, Optimizer]
- _optimizer_params
优化器参数.
- Type
Dict[str, Any]
- _eval_metrics
模型训练过程中的需要观测的评估指标.
- Type
List[str]
- _batch_size
训练数据或评估数据的批大小.
- Type
int
- _max_epochs
训练的最大轮数.
- Type
int
- _verbose
模型训练过程中打印日志信息的间隔.
- Type
int
- _patience
模型训练过程中, 当评估指标超过一定轮数不再变优,模型提前停止训练.
- Type
int
- _seed
全局随机数种子, 注: 保证每次模型参数初始化一致.
- Type
int|None
- _stop_training
- Type
bool
- _d_model
编码器/解码器的输入特征维度.
- Type
int
- _nhead
多头注意力机制中的头数.
- Type
int
- _num_encoder_layers
编码器中的编码层数.
- Type
int
- _num_decoder_layers
解码器中的解码层数.
- Type
int
- _activation
编码器/解码器中间层的激活函数, 可选[“relu”, “gelu”].
- Type
str
- _dropout_rate
神经元丢弃概率.
- Type
float