paddlets.models.dl.paddlepaddle.transformer

class TransformerModel(in_chunk_len: int, out_chunk_len: int, 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.dl.paddlepaddle.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 = 8, nhead: int = 4, num_encoder_layers: int = 1, num_decoder_layers: int = 1, dim_feedforward: int = 64, activation: str = 'relu', dropout_rate: float = 0.1, custom_encoder: ~typing.Optional[~paddle.fluid.dygraph.layers.Layer] = None, custom_decoder: ~typing.Optional[~paddle.fluid.dygraph.layers.Layer] = None)[源代码]

基类:PaddleBaseModelImpl

Transformer 是2017年提出的一种编码器-解码器架构的深度学习模型. 核心特征是”多头注意力”机制, 能够捕获输入和输出的内部依赖关系(自注意力机制) 以及输入和输出之间的依赖关系(编码器-解码器注意力机制).

参数
  • in_chunk_len (int) – 模型输入的时间序列长度.

  • out_chunk_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) – 多头注意力机制中的头数.

  • num_encoder_layers (int) – 编码器中的编码层数.

  • num_decoder_layers (int) – 解码器中的解码层数.

  • dim_feedforward (int) – 前馈网络模型的维度.

  • activation (str) – 编码器/解码器中间层的激活函数, 可选[“glu”, “bilinear”, “relu”, “gelu”].

  • dropout_rate (float) – 神经元丢弃概率.

  • custom_encoder (paddle.nn.Layer|None) – 用户自定义的transformer中编码器模块.

  • custom_decoder (paddle.nn.Layer|None) – 用户自定义的transformer中解码器模块.

_in_chunk_len

模型输入的时间序列长度.

Type

int

_out_chunk_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]

_callbacks

自定义callback函数.

Type

List[Callback]

_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

_dim_feedforward

前馈网络模型的维度.

Type

int

_activation

编码器/解码器中间层的激活函数, 可选[“glu”, “bilinear”, “relu”, “gelu”].

Type

str

_dropout_rate

神经元丢弃概率.

Type

float

_custom_encoder

用户自定义的transformer中编码器模块.

Type

paddle.nn.Layer|None

_custom_decoder

用户自定义的transformer中解码器模块.

Type

paddle.nn.Layer|None