Transformers documentation

PatchTSMixer

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Este modelo foi publicado no HF papers em 2023-06-14 e contribuído para o Hugging Face Transformers em 2023-12-05.

PatchTSMixer

Visão geral

O modelo PatchTSMixer foi proposto em TSMixer: Lightweight MLP-Mixer Model for Multivariate Time Series Forecasting por Vijay Ekambaram, Arindam Jati, Nam Nguyen, Phanwadee Sinthong e Jayant Kalagnanam.

PatchTSMixer é uma abordagem leve de modelagem de séries temporais baseada na arquitetura MLP-Mixer. Nesta implementação do HuggingFace, disponibilizamos as capacidades do PatchTSMixer para facilitar, de forma simples, a mistura leve entre patches, canais e recursos ocultos, visando uma modelagem eficaz de séries temporais multivariadas. Ele também suporta diversos mecanismos de atenção, desde uma atenção simples com gate até blocos de autoatenção mais complexos, que podem ser personalizados conforme necessário. O modelo pode ser pré-treinado e, em seguida, utilizado para diversas tarefas de nível inferior, como previsão, classificação e regressão.

O resumo do artigo é o seguinte:

O TSMixer é uma arquitetura neural leve composta exclusivamente por módulos de perceptron multicamadas (MLP), projetada para previsão multivariada e aprendizado de representação em séries temporais segmentadas. Nosso modelo se inspira no sucesso dos modelos MLP-Mixer na visão computacional. Demonstramos os desafios envolvidos na adaptação do Vision MLP-Mixer para séries temporais e introduzimos componentes validados empiricamente para melhorar a precisão. Isso inclui um novo paradigma de design que acopla cabeças de reconciliação online ao backbone do MLP-Mixer, para modelar explicitamente propriedades de séries temporais, como hierarquia e correlações entre canais. Também propomos uma abordagem híbrida de modelagem de canais para lidar eficazmente com interações ruidosas entre canais e generalização em conjuntos de dados diversos, um desafio comum em métodos existentes de mistura de canais por segmento. Além disso, um mecanismo simples de atenção com gate é introduzido no backbone para priorizar recursos importantes. Ao incorporar esses componentes leves, aprimoramos significativamente a capacidade de aprendizado de estruturas MLP simples, superando modelos Transformer complexos com uso mínimo de computação. Além disso, o design modular do TSMixer permite compatibilidade com métodos de aprendizado supervisionado e auto-supervisionado mascarado, tornando-o um bloco de construção promissor para Modelos Fundamentais de séries temporais. O TSMixer supera modelos MLP e Transformer de estado da arte em previsão por uma margem considerável de 8-60%. Ele também supera os benchmarks mais recentes e fortes de modelos Patch-Transformer (por 1-2%) com uma redução significativa em memória e tempo de execução (2-3X).

Este modelo foi contribuído por ajati, vijaye12, gsinthong, namctin, wmgifford, kashif.

Exemplo de uso

O trecho de código abaixo mostra como inicializar aleatoriamente um modelo PatchTSMixer. O modelo é compatível com a Trainer API.


from transformers import PatchTSMixerConfig, PatchTSMixerForPrediction
from transformers import Trainer, TrainingArguments,


config = PatchTSMixerConfig(context_length = 512, prediction_length = 96)
model = PatchTSMixerForPrediction(config)
trainer = Trainer(model=model, args=training_args, 
            train_dataset=train_dataset,
            eval_dataset=valid_dataset)
trainer.train()
results = trainer.evaluate(test_dataset)

Dicas de uso

O modelo também pode ser usado para classificação de séries temporais e regressão de séries temporais. Consulte as respectivas classes PatchTSMixerForTimeSeriesClassification e PatchTSMixerForRegression.

Recursos

  • Um post de blog explicando o PatchTSMixer em profundidade pode ser encontrado aqui. O blog também pode ser aberto no Google Colab.

PatchTSMixerConfig

classe transformers.PatchTSMixerConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonecontext_length: int = 32patch_length: int = 8num_input_channels: int = 1patch_stride: int = 8num_parallel_samples: int = 100d_model: int = 8expansion_factor: int = 2num_layers: int = 3dropout: float | int = 0.2mode: str = 'common_channel'gated_attn: bool = Truenorm_mlp: str = 'LayerNorm'self_attn: bool = Falseself_attn_heads: int = 1use_positional_encoding: bool = Falsepositional_encoding_type: str = 'sincos'scaling: str | bool | None = 'std'loss: str = 'mse'init_std: float = 0.02norm_eps: float = 1e-05mask_type: str = 'random'random_mask_ratio: float = 0.5num_forecast_mask_patches: list[int] | tuple[int, ...] | int | None = (2,)mask_value: int = 0masked_loss: bool = Truechannel_consistent_masking: bool = Trueunmasked_channel_indices: list[int] | None = Nonehead_dropout: float | int = 0.2distribution_output: str = 'student_t'prediction_length: int = 16prediction_channel_indices: list | None = Nonenum_targets: int = 3output_range: list | None = Nonehead_aggregation: str | None = 'max_pool' )

Parâmetros

  • context_length (int, opcional, padrão 32) — O comprimento do contexto/histórico para a sequência de entrada.
  • patch_length (int, opcional, padrão 8) — O comprimento do patch para a sequência de entrada.
  • num_input_channels (int, opcional, padrão 1) — O número de canais de entrada.
  • patch_stride (int, opcional, padrão 8) — Determina a sobreposição entre dois patches consecutivos. Defina-o como patch_length (ou maior), se quisermos patches sem sobreposição.
  • num_parallel_samples (int, opcional, padrão 100) — O número de amostras a serem geradas em paralelo para a previsão probabilística.
  • d_model (int, opcional, padrão 8) — Tamanho das camadas do codificador e da camada pooler.
  • expansion_factor (int, opcional, padrão 2) — Fator de expansão a ser usado dentro do MLP. O intervalo recomendado é de 2 a 5. Um valor maior indica um modelo mais complexo.
  • num_layers (int, opcional, padrão 3) — Número de camadas ocultas no decodificador do Transformer.
  • dropout (Union[float, int], opcional, padrão 0.2) — A proporção para todas as camadas de dropout.
  • mode (str, opcional, padrão "common_channel") — Modo do Mixer. Determina como processar os canais. Valores permitidos: “common_channel”, “mix_channel”. No modo “common_channel”, seguimos a modelagem independente de canais, sem mistura explícita de canais. A mistura de canais ocorre de forma implícita por meio de pesos compartilhados entre os canais. (abordagem preferida inicialmente) No modo “mix_channel”, seguimos a mistura explícita de canais, além do mixer de patches e features. (abordagem preferida quando as correlações entre canais são muito importantes para o modelo)
  • gated_attn (bool, opcional, padrão True) — Ativa o Gated Attention.
  • norm_mlp (str, opcional, padrão "LayerNorm") — Camada de normalização (BatchNorm ou LayerNorm).
  • self_attn (bool, opcional, padrão False) — Ativa a autoatenção Tiny entre patches. Isso pode ser ativado quando a saída do Vanilla PatchTSMixer com atenção com gate não for satisfatória. A ativação disso resulta em atenção explícita par a par e modelagem entre patches.
  • self_attn_heads (int, opcional, padrão 1) — Número de cabeças de autoatenção. Funciona apenas quando self_attn está definido como True.
  • use_positional_encoding (bool, opcional, padrão False) — Ativa o uso de incorporação posicional para as camadas de autoatenção pequenas. Funciona apenas quando self_attn está definido como True.
  • positional_encoding_type (str, opcional, padrão "sincos") — Codificações posicionais. As opções "random" e "sincos" são suportadas. Funciona apenas quando use_positional_encoding está definido como True
  • scaling (string ou bool, opcional, padrão "std") — Se os alvos de entrada devem ser escalados usando o escaler “mean”, o escaler “std” ou nenhum escaler, caso seja None. Se for True, o escaler é definido como “mean”.
  • loss (string, opcional, padrão "mse") — A função de perda do modelo correspondente à cabeça distribution_output. Para distribuições paramétricas, é a log-verossimilhança negativa ("nll") e para estimativas pontuais, é o erro quadrático médio "mse".
  • init_std (float, opcional, padrão 0.02) — O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos.
  • norm_eps (float, opcional, padrão 1e-05) — Um valor adicionado ao denominador para estabilidade numérica da normalização.
  • mask_type (str, opcional, padrão "random") — Tipo de mascaramento a ser usado no modo Masked Pretraining. Os valores permitidos são “random” e “forecast”. No mascaramento Random, os pontos são mascarados aleatoriamente. No mascaramento Forecast, os pontos são mascarados em direção ao final.
  • random_mask_ratio (float, opcional, padrão 0.5) — Proporção de mascaramento a ser usada quando mask_type é random. Um valor maior indica mais mascaramento.
  • num_forecast_mask_patches (int ou list, opcional, padrão [2]) — Número de patches a serem mascarados no final de cada amostra do lote. Se for um inteiro, todas as amostras do lote terão o mesmo número de patches mascarados. Se for uma lista, as amostras do lote serão mascaradas aleatoriamente pelos números definidos na lista. Este argumento é usado apenas para pré-treino de previsão.
  • mask_value (float, opcional, padrão 0.0) — Valor de máscara a ser utilizado.
  • masked_loss (bool, opcional, padrão True) — Se a perda de pré-treinamento deve ser calculada apenas nas porções mascaradas ou em toda a saída.
  • channel_consistent_masking (bool, opcional, padrão True) — Quando verdadeiro, a máscara será a mesma em todos os canais de uma série temporal. Caso contrário, as posições da máscara variarão entre os canais.
  • unmasked_channel_indices (list, opcional) — Canais que não são mascarados durante o pré-treinamento.
  • head_dropout (float, opcional, padrão 0.2) — A probabilidade de dropout da cabeça do PatchTSMixer.
  • distribution_output (string, opcional, padrão "student_t") — A cabeça de emissão da distribuição para o modelo quando a perda é “nll”. Pode ser “student_t”, “normal” ou “negative_binomial”.
  • prediction_length (int, opcional, padrão 16) — Número de passos de tempo a serem previstos em uma tarefa de previsão. Também conhecido como Horizonte de Previsão.
  • prediction_channel_indices (list, opcional) — Lista de índices de canais a serem previstos. Se for None, todos os canais serão previstos. Os dados de destino devem conter todos os canais e os canais em previsão e destino são filtrados explicitamente antes do cálculo da perda.
  • num_targets (int, opcional, padrão 3) — Número de alvos (dimensionalidade da variável regressada) para uma tarefa de regressão.
  • output_range (list, opcional) — Intervalo de saída para restringir a tarefa de regressão. O valor padrão é None.
  • head_aggregation (str, opcional, padrão "max_pool") — Modo de agregação a ser habilitado para tarefas de classificação ou regressão. Os valores permitidos são None, “use_last”, “max_pool”, “avg_pool”.

Esta é a classe de configuração para armazenar a configuração de um PatchTSMixerModel. Ela é usada para instanciar um modelo Patchtsmixer de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do ibm/patchtsmixer-etth1-pretrain

Os objetos de configuração herdam de PreTrainedConfig e podem ser usados para controlar as saídas do modelo. Consulte a documentação de PreTrainedConfig para mais informações.

Exemplo:

>>> from transformers import PatchTSMixerConfig, PatchTSMixerModel

>>> # Initializing a default PatchTSMixer configuration
>>> configuration = PatchTSMixerConfig()

>>> # Randomly initializing a model (with random weights) from the configuration
>>> model = PatchTSMixerModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

PatchTSMixerModel

classe transformers.PatchTSMixerModel

< >

( config: PatchTSMixerConfigmask_input: bool = False )

Parâmetros

  • config (PatchTSMixerConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.
  • mask_input (bool, opcional, padrão False) — Indica se a entrada deve ser mascarada usando o módulo PatchTSMixerMasking.

O modelo PatchTSMixer para previsão de séries temporais.

Este modelo herda de PreTrainedModel. Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.)

Este modelo também é uma subclasse de torch.nn.Module do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso geral e ao comportamento.

forward

< >

( past_values: Tensorobserved_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = None**kwargs ) → PatchTSMixerModelOutput or tuple(torch.Tensor)

Parâmetros

  • past_values (torch.Tensor de forma (batch_size, seq_length, num_input_channels)) — Valores de contexto da série temporal. Para uma tarefa de pré-treino, isso representa a série temporal de entrada para prever a parte mascarada. Para uma tarefa de previsão, isso representa os valores históricos/passados da série temporal. Da mesma forma, para tarefas de classificação ou regressão, representa os valores de contexto apropriados da série temporal.

    Para séries temporais univariadas, a dimensão num_input_channels deve ser 1. Para séries temporais multivariadas, ela é maior que 1.

  • observed_mask (torch.Tensor de forma (batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quais past_values foram observados e quais estavam ausentes. Valores da máscara selecionados em [0, 1]:
    • 1 para valores que são observados,
    • 0 para valores que estão ausentes (ou seja, NaNs que foram substituídos por zeros).
  • output_hidden_states (bool, opcional) — Indica se as hidden states de todas as camadas devem ser retornadas. Consulte hidden_states em tensors retornados para mais detalhes.

Retorna

PatchTSMixerModelOutput ou tuple(torch.Tensor)

Um PatchTSMixerModelOutput ou uma tupla de torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários elementos, dependendo da configuração (PatchTSMixerConfig) e das entradas.

O método forward do PatchTSMixerModel substitui o método especial __call__.

Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de Module em seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.

  • last_hidden_state (torch.Tensor de forma (batch_size, num_channels, num_patches, d_model)) — Estado oculto na saída da última camada do modelo.
  • hidden_states (tuple(torch.Tensor), opcional) — Hidden-states do modelo na saída de cada camada.
  • patch_input (torch.Tensor de forma (batch_size, num_channels, num_patches, patch_length)) — Dados de entrada do modelo em formato de patches.
  • mask (torch.Tensor de forma (batch_size, num_channels, num_patches), opcional) — Tensor Bool que indica True nos patches mascarados e False nos demais.
  • loc (torch.Tensor de forma (batch_size, 1, num_channels), opcional) — Fornece a média da janela de contexto por canal. Usado para a desnornalização do revin fora do modelo, se o revin estiver habilitado.
  • scale (torch.Tensor de forma (batch_size, 1, num_channels), opcional) — Fornece o desvio padrão da janela de contexto por canal. Usado para a desnornalização do revin fora do modelo, se o revin estiver habilitado.

PatchTSMixerForPrediction

classe transformers.PatchTSMixerForPrediction

< >

( config: PatchTSMixerConfig )

Parâmetros

  • config (PatchTSMixerConfig) — Configuração.

PatchTSMixer para aplicações de previsão.

forward

< >

( past_values: Tensorobserved_mask: typing.Optional[torch.Tensor] = Nonefuture_values: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Nonereturn_loss: bool = True**kwargs ) → PatchTSMixerForPredictionOutput or tuple(torch.Tensor)

Parâmetros

  • past_values (torch.Tensor de forma (batch_size, seq_length, num_input_channels)) — Valores de contexto da série temporal. Para uma tarefa de pré-treino, isso representa a série temporal de entrada para prever a parte mascarada. Para uma tarefa de previsão, isso representa os valores históricos/passados da série temporal. Da mesma forma, para tarefas de classificação ou regressão, representa os valores de contexto apropriados da série temporal.

    Para séries temporais univariadas, a dimensão num_input_channels deve ser 1. Para séries temporais multivariadas, ela é maior que 1.

  • observed_mask (torch.Tensor de forma (batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quais past_values foram observados e quais estavam ausentes. Valores da máscara selecionados em [0, 1]:
    • 1 para valores que são observados,
    • 0 para valores que estão ausentes (ou seja, NaNs que foram substituídos por zeros).
  • future_values (torch.Tensor of shape (batch_size, target_len, num_input_channels) for forecasting, — (batch_size, num_targets) for regression, or (batch_size,) for classification, optional): Target values of the time series, that serve as labels for the model. The future_values is what the Transformer needs during training to learn to output, given the past_values. Note that, this is NOT required for a pretraining task.

    Para uma tarefa de previsão, a forma é (batch_size, target_len, num_input_channels). Mesmo que queiramos prever apenas canais específicos definindo os índices no parâmetro prediction_channel_indices, passe os dados de alvo com todos os canais, pois a filtragem de canais para ambos, previsão e alvo, será aplicada manualmente antes do cálculo da perda.

  • output_hidden_states (bool, opcional) — Indica se as hidden states de todas as camadas devem ser retornadas. Consulte hidden_states em tensors retornados para mais detalhes.
  • return_loss (bool, opcional) — Se deve retornar a perda na chamada de forward.

Retorna

PatchTSMixerForPredictionOutput ou tuple(torch.Tensor)

Um PatchTSMixerForPredictionOutput ou uma tupla de torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários elementos, dependendo da configuração (PatchTSMixerConfig) e das entradas.

O método forward da PatchTSMixerForPrediction substitui o método especial __call__.

Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de Module em seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.

  • loss (*optional*, retornado quando y é fornecido, torch.Tensor de forma ()) — Perda total.
  • prediction_outputs (torch.Tensor de forma (batch_size, prediction_length, num_input_channels)) — Saída de previsão do forecast head.
  • last_hidden_state (torch.Tensor de forma (batch_size, num_input_channels, num_patches, d_model)) — Embeddings do backbone antes de passar pelo head.
  • hidden_states (tuple(torch.Tensor), opcional) — Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.
  • loc (torch.Tensor, opcional de forma (batch_size, 1, num_input_channels)) — Média de entrada
  • scale (torch.Tensor, opcional de forma (batch_size, 1, num_input_channels)) — Desvio padrão da entrada

PatchTSMixerForTimeSeriesClassification

classe transformers.PatchTSMixerForTimeSeriesClassification

< >

( config: PatchTSMixerConfig )

Parâmetros

  • config (PatchTSMixerConfig) — Configuração.

PatchTSMixer para aplicação de classificação.

forward

< >

( past_values: Tensortarget_values: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Nonereturn_loss: bool = True**kwargs ) → PatchTSMixerForTimeSeriesClassificationOutput or tuple(torch.Tensor)

Parâmetros

  • past_values (torch.Tensor de forma (batch_size, seq_length, num_input_channels)) — Valores de contexto da série temporal. Para uma tarefa de pré-treino, isso representa a série temporal de entrada para prever a parte mascarada. Para uma tarefa de previsão, isso representa os valores históricos/passados da série temporal. Da mesma forma, para tarefas de classificação ou regressão, representa os valores de contexto apropriados da série temporal.

    Para séries temporais univariadas, a dimensão num_input_channels deve ser 1. Para séries temporais multivariadas, ela é maior que 1.

  • target_values (torch.Tensor de forma (batch_size, target_len, num_input_channels) para previsão, — (batch_size, num_targets) para regressão, ou (batch_size,) para classificação, opcional): Valores-alvo da série temporal, que servem como rótulos para o modelo. O target_values é o que o Transformer precisa durante o treinamento para aprender a produzir, dado o past_values. Observe que isso NÃO é obrigatório para uma tarefa de pré-treinamento.

    Para uma tarefa de previsão, a forma é (batch_size, target_len, num_input_channels). Mesmo que queiramos prever apenas canais específicos definindo os índices no parâmetro prediction_channel_indices, passe os dados de alvo com todos os canais, pois a filtragem de canais para ambos, previsão e alvo, será aplicada manualmente antes do cálculo da perda.

    Para uma tarefa de classificação, ela tem a forma (batch_size,).

    Para uma tarefa de regressão, ela tem a forma (batch_size, num_targets).

  • output_hidden_states (bool, opcional) — Indica se as hidden states de todas as camadas devem ser retornadas. Consulte hidden_states em tensors retornados para mais detalhes.
  • return_loss (bool, opcional) — Se deve retornar a perda na chamada forward.

Retorna

PatchTSMixerForTimeSeriesClassificationOutput ou tuple(torch.Tensor)

Um PatchTSMixerForTimeSeriesClassificationOutput ou uma tupla de torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários elementos, dependendo da configuração (PatchTSMixerConfig) e das entradas.

O método forward da PatchTSMixerForTimeSeriesClassification substitui o método especial __call__.

Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de Module em seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.

  • loss (*optional*, returned when y is provided, torch.Tensor of shape ()) — Total loss.
  • prediction_outputs (torch.Tensor de forma (batch_size, num_labels)) — Saída de previsão da cabeça de classificação.
  • last_hidden_state (torch.Tensor de forma (batch_size, num_input_channels, num_patches, d_model)) — Embeddings do backbone antes de passar pelo head.
  • hidden_states (tuple(torch.Tensor), opcional) — Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.

PatchTSMixerForPretraining

classe transformers.PatchTSMixerForPretraining

< >

( config: PatchTSMixerConfig )

Parâmetros

  • config (PatchTSMixerConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.

PatchTSMixer para pré-treino com máscara.

Este modelo herda de PreTrainedModel. Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.)

Este modelo também é uma subclasse de torch.nn.Module do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso geral e ao comportamento.

forward

< >

( past_values: Tensorobserved_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Nonereturn_loss: bool = True**kwargs ) → PatchTSMixerForPreTrainingOutput or tuple(torch.Tensor)

Parâmetros

  • past_values (torch.Tensor de forma (batch_size, seq_length, num_input_channels)) — Valores de contexto da série temporal. Para uma tarefa de pré-treino, isso representa a série temporal de entrada para prever a parte mascarada. Para uma tarefa de previsão, isso representa os valores históricos/passados da série temporal. Da mesma forma, para tarefas de classificação ou regressão, representa os valores de contexto apropriados da série temporal.

    Para séries temporais univariadas, a dimensão num_input_channels deve ser 1. Para séries temporais multivariadas, ela é maior que 1.

  • observed_mask (torch.Tensor de forma (batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quais past_values foram observados e quais estavam ausentes. Valores da máscara selecionados em [0, 1]:
    • 1 para valores que são observados,
    • 0 para valores que estão ausentes (ou seja, NaNs que foram substituídos por zeros).
  • output_hidden_states (bool, opcional) — Indica se as hidden states de todas as camadas devem ser retornadas. Consulte hidden_states em tensors retornados para mais detalhes.
  • return_loss (bool, opcional) — Se deve retornar a perda na chamada de forward.

Retorna

PatchTSMixerForPreTrainingOutput ou tuple(torch.Tensor)

Um PatchTSMixerForPreTrainingOutput ou uma tupla de torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários elementos, dependendo da configuração (PatchTSMixerConfig) e das entradas.

O método forward de PatchTSMixerForPretraining substitui o método especial __call__.

Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de Module em seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.

  • loss (*optional*, retornado quando y é fornecido, torch.Tensor de forma ()) — Perda total
  • prediction_outputs (torch.Tensor de forma (batch_size, num_input_channels, num_patches, patch_length)) — Saída de previsão do cabeçalho de pré-treino.
  • last_hidden_state (torch.Tensor de forma (batch_size, num_input_channels, num_patches, d_model)) — Embeddings do backbone antes de passar pelo head.
  • hidden_states (tuple(torch.Tensor), opcional) — Hidden-states do modelo na saída de cada camada.

PatchTSMixerForRegression

classe transformers.PatchTSMixerForRegression

< >

( config: PatchTSMixerConfig )

Parâmetros

  • config (PatchTSMixerConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.

PatchTSMixer para aplicação de regressão.

Este modelo herda de PreTrainedModel. Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.)

Este modelo também é uma subclasse de torch.nn.Module do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso geral e ao comportamento.

forward

< >

( past_values: Tensortarget_values: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Nonereturn_loss: bool = True**kwargs ) → PatchTSMixerForRegressionOutput or tuple(torch.Tensor)

Parâmetros

  • past_values (torch.Tensor de forma (batch_size, seq_length, num_input_channels)) — Valores de contexto da série temporal. Para uma tarefa de pré-treino, isso representa a série temporal de entrada para prever a parte mascarada. Para uma tarefa de previsão, isso representa os valores históricos/passados da série temporal. Da mesma forma, para tarefas de classificação ou regressão, representa os valores de contexto apropriados da série temporal.

    Para séries temporais univariadas, a dimensão num_input_channels deve ser 1. Para séries temporais multivariadas, ela é maior que 1.

  • target_values (torch.Tensor of shape (batch_size, target_len, num_input_channels) for forecasting, — (batch_size, num_targets) for regression, or (batch_size,) for classification, optional): Target values of the time series, that serve as labels for the model. The target_values is what the Transformer needs during training to learn to output, given the past_values. Note that, this is NOT required for a pretraining task.

    Para uma tarefa de previsão, a forma é (batch_size, target_len, num_input_channels). Mesmo que queiramos prever apenas canais específicos definindo os índices no parâmetro prediction_channel_indices, passe os dados de alvo com todos os canais, pois a filtragem de canais para ambos, previsão e alvo, será aplicada manualmente antes do cálculo da perda.

    Para uma tarefa de classificação, ela tem a forma (batch_size,).

    Para uma tarefa de regressão, ela tem a forma (batch_size, num_targets).

  • output_hidden_states (bool, opcional) — Indica se as hidden states de todas as camadas devem ser retornadas. Consulte hidden_states em tensors retornados para mais detalhes.
  • return_loss (bool, opcional) — Se deve retornar a perda na chamada forward.

Retorna

PatchTSMixerForRegressionOutput ou tuple(torch.Tensor)

Um PatchTSMixerForRegressionOutput ou uma tupla de torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários elementos, dependendo da configuração (PatchTSMixerConfig) e das entradas.

O método forward de PatchTSMixerForRegression sobrescreve o método especial __call__.

Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de Module em seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.

  • loss (*optional*, retornado quando y é fornecido, torch.Tensor de forma ()) — Perda total.
  • regression_outputs (torch.Tensor de forma (batch_size, num_targets)) — Saída de previsão da cabeça de regressão.
  • last_hidden_state (torch.Tensor de forma (batch_size, num_input_channels, num_patches, d_model)) — Embeddings do backbone antes de passar pelo head.
  • hidden_states (tuple(torch.Tensor), opcional) — Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.
Update on GitHub