Transformers documentation
PatchTST
Este modelo foi publicado no HF papers em 27/11/2022 e contribuído para o Hugging Face Transformers em 13/11/2023.
PatchTST
Visão geral
O modelo PatchTST foi proposto em A Time Series is Worth 64 Words: Long-term Forecasting with Transformers por Yuqi Nie, Nam H. Nguyen, Phanwadee Sinthong e Jayant Kalagnanam.
Em alto nível, o modelo vetoriza séries temporais em patches de um tamanho definido e codifica a sequência resultante de vetores por meio de um Transformer, que então produz a previsão do comprimento definido por meio de um head apropriado. O modelo é ilustrado na figura a seguir:
O resumo do artigo é o seguinte:
Propomos um design eficiente de modelos baseados em Transformer para previsão de séries temporais multivariadas e aprendizado de representações auto-supervisionado. Ele é baseado em dois componentes-chave: (i) segmentação de séries temporais em patches de nível de sub-série, que são usados como tokens de entrada para o Transformer; (ii) independência de canal, em que cada canal contém uma única série temporal univariada que compartilha o mesmo embedding e pesos do Transformer entre todas as séries. O design de patching tem naturalmente três benefícios: a informação semântica local é retida no embedding; o uso de computação e memória dos mapas de atenção é reduzido quadraticamente dado a mesma janela de retrospectiva; e o modelo pode considerar um histórico mais longo. Nosso Transformer de séries temporais com patching independente de canal (PatchTST) pode melhorar significativamente a precisão da previsão de longo prazo em comparação com modelos baseados em Transformer SOTA. Também aplicamos nosso modelo a tarefas de pré-treinamento auto-supervisionado e alcançamos excelente desempenho de fine-tuning, superando o treinamento supervisionado em grandes conjuntos de dados. A transferência de representações pré-treinadas com máscara de um conjunto de dados para outros também produz precisão de previsão SOTA.
Este modelo foi contribuído por namctin, gsinthong, diepi, vijaye12, wmgifford e kashif. O código original pode ser encontrado aqui.
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 PatchTSTForClassification e PatchTSTForRegression.
Recursos
- Um post de blog explicando o PatchTST em profundidade pode ser encontrado aqui. O blog também pode ser aberto no Google Colab.
PatchTSTConfig
classe transformers.PatchTSTConfig
< source >( 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 = Nonenum_input_channels: int = 1context_length: int = 32distribution_output: str = 'student_t'loss: str | None = 'mse'patch_length: int = 1patch_stride: int = 1num_hidden_layers: int = 3d_model: int = 128num_attention_heads: int = 4share_embedding: bool = Truechannel_attention: bool = Falseffn_dim: int = 512norm_type: str = 'batchnorm'norm_eps: float = 1e-05attention_dropout: float | int = 0.0positional_dropout: float | int = 0.0path_dropout: float | int = 0.0ff_dropout: float | int = 0.0bias: bool = Trueactivation_function: str = 'gelu'pre_norm: bool = Truepositional_encoding_type: str = 'sincos'use_cls_token: bool = Falseinit_std: float = 0.02share_projection: bool = Truescaling: str | bool | None = 'std'do_mask_input: bool | None = Nonemask_type: str = 'random'random_mask_ratio: float = 0.5num_forecast_mask_patches: list[int] | tuple[int, ...] | int | None = (2,)channel_consistent_masking: bool | None = Falseunmasked_channel_indices: list[int] | None = Nonemask_value: int = 0pooling_type: str | None = 'mean'head_dropout: float | int = 0.0prediction_length: int = 24num_targets: int = 1output_range: list | None = Nonenum_parallel_samples: int = 100 )
Parâmetros
- num_input_channels (
int, opcional, padrão1) — O número de canais de entrada. - context_length (
int, opcional, padrão 32) — O comprimento do contexto da sequência de entrada. - distribution_output (
str, opcional, padrão"student_t") — A cabeça de emissão da distribuição do modelo quando a perda é “nll”. Pode ser “student_t”, “normal” ou “negative_binomial”. - loss (
str, opcional, padrão"mse") — A função de perda do modelo correspondente à cabeçadistribution_output. Para distribuições paramétricas, é a log-verossimilhança negativa ("nll") e para estimativas pontuais, é o erro quadrático médio"mse". - patch_length (
int, opcional, padrão 1) — Define o comprimento do patch do processo de patchificação. - patch_stride (
int, opcional, padrão 1) — Define o passo do processo de patchificação. - num_hidden_layers (
int, opcional, padrão3) — Número de camadas ocultas no decodificador do Transformer. - d_model (
int, opcional, padrão128) — Tamanho das camadas do codificador e da camada pooler. - num_attention_heads (
int, opcional, padrão 4) — Número de cabeças de atenção para cada camada de atenção no codificador do Transformer. - share_embedding (
bool, opcional, padrãoTrue) — Compartilha o embedding de entrada entre todos os canais. - channel_attention (
bool, opcional, padrãoFalse) — Ativa o bloco de atenção de canal no Transformer para permitir que os canais prestem atenção uns aos outros. - ffn_dim (
int, opcional, padrão 512) — Dimensão da camada “intermediária” (frequentemente chamada de feed-forward) no codificador do Transformer. - norm_type (
str, opcional, padrão"batchnorm") — Normalização em cada camada do Transformer. Pode ser"batchnorm"ou"layernorm". - norm_eps (
float, opcional, padrão 1e-05) — Um valor adicionado ao denominador para estabilidade numérica da normalização. - attention_dropout (
Union[float, int], opcional, padrão0.0) — A taxa de dropout para as probabilidades de atenção. - positional_dropout (
float, opcional, padrão 0.0) — A probabilidade de dropout na camada de incorporação posicional. - path_dropout (
float, opcional, padrão 0.0) — O dropout do caminho no bloco residual. - ff_dropout (
float, opcional, padrão 0.0) — A probabilidade de dropout usada entre as duas camadas das redes feed-forward. - bias (
bool, opcional, padrãoTrue) — Indica se deve adicionar viés nas redes feed-forward. - activation_function (
str, opcional, padrão"gelu") — A função de ativação não linear (string) no Transformer."gelu"e"relu"são suportadas. - pre_norm (
bool, opcional, padrãoTrue) — A normalização é aplicada antes da autoatenção se pre_norm estiver definido comoTrue. Caso contrário, a normalização é aplicada após o bloco residual. - positional_encoding_type (
str, opcional, padrão"sincos") — Codificações posicionais. As opções"random"e"sincos"são suportadas. - use_cls_token (
bool, opcional, padrãoFalse) — Indica se o token cls é utilizado. - init_std (
float, opcional, padrão 0.02) — O desvio padrão da distribuição de inicialização de pesos normal truncada. - share_projection (
bool, opcional, padrãoTrue) — Compartilha a camada de projeção entre diferentes canais na cabeça de previsão. - scaling (
Union, opcional, padrão"std") — Indica se os alvos de entrada devem ser escalados usando o escaler “mean”, o escaler “std” ou nenhum escaler, caso sejaNone. Se forTrue, o escaler é definido como “mean”. - do_mask_input (
bool, opcional) — Aplica mascaramento durante o pré-treinamento. - mask_type (
str, opcional, padrão"random") — Tipo de mascaramento. Atualmente, apenas"random"e"forecast"são suportados. - random_mask_ratio (
float, opcional, padrão 0,5) — Proporção de mascaramento aplicada para mascarar os dados de entrada durante o pré-treinamento aleatório. - num_forecast_mask_patches (
intoulist, 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. - channel_consistent_masking (
bool, opcional, padrãoFalse) — Se o channel consistent masking for True, todos os canais terão o mesmo padrão de masking. - unmasked_channel_indices (
list, opcional) — Índices dos canais que não são mascarados durante o pré-treinamento. Os valores na lista são números entre 1 enum_input_channels - mask_value (
int, opcional, padrão 0) — Os valores nos patches mascarados serão preenchidos commask_value. - pooling_type (
str, opcional, padrão"mean") — Pooling do embedding."mean","max"eNonesão suportados. - head_dropout (
float, opcional, padrão 0.0) — A probabilidade de dropout para a head. - prediction_length (
int, opcional, padrão 24) — O horizonte de previsão que o modelo irá gerar. - num_targets (
int, opcional, padrão 1) — Número de alvos para tarefas de regressão e classificação. Para classificação, é o número de classes. - output_range (
list, opcional) — Intervalo de saída para a tarefa de regressão. O intervalo dos valores de saída pode ser definido para forçar o modelo a produzir valores dentro de um intervalo. - num_parallel_samples (
int, opcional, padrão 100) — O número de amostras geradas em paralelo para a predição probabilística.
Esta é a classe de configuração para armazenar a configuração de um PatchTSTModel. Ela é usada para instanciar um modelo Patchtst 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-granite/granite-timeseries-patchtst
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.
>>> from transformers import PatchTSTConfig, PatchTSTModel
>>> # Initializing an PatchTST configuration with 12 time steps for prediction
>>> configuration = PatchTSTConfig(prediction_length=12)
>>> # Randomly initializing a model (with random weights) from the configuration
>>> model = PatchTSTModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configPatchTSTModel
classe transformers.PatchTSTModel
< source >( config: PatchTSTConfig )
Parâmetros
- config (PatchTSTConfig) — 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.
O modelo Patchtst puro, que produz estados ocultos brutos sem nenhum cabeçalho específico no topo.
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
< source >( past_values: Tensorpast_observed_mask: typing.Optional[torch.Tensor] = Nonefuture_values: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs )
Parâmetros
- past_values (
torch.Tensorde forma(bs, sequence_length, num_input_channels), obrigatório) — Sequência de entrada para o modelo - past_observed_mask (
torch.BoolTensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quaispast_valuesforam 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.BoolTensorde forma(batch_size, prediction_length, num_input_channels), opcional) — Valores futuros de destino associados aospast_values - output_hidden_states (
bool, opcional) — Se as ocultas de todas as camadas devem ser retornadas - output_attentions (
bool, opcional) — Se deve ou não retornar a atenção de saída de todas as camadas - return_dict (
bool, opcional) — Se deve ou não retornar umModelOutputem vez de uma tupla simples.
Exemplos:
>>> from huggingface_hub import hf_hub_download
>>> import torch
>>> from transformers import PatchTSTModel
>>> file = hf_hub_download(
... repo_id="hf-internal-testing/etth1-hourly-batch", filename="train-batch.pt", repo_type="dataset"
... )
>>> batch = torch.load(file)
>>> model = PatchTSTModel.from_pretrained("namctin/patchtst_etth1_pretrain")
>>> # during training, one provides both past and future values
>>> outputs = model(
... past_values=batch["past_values"],
... future_values=batch["future_values"],
... )
>>> last_hidden_state = outputs.last_hidden_statePatchTSTForPrediction
classe transformers.PatchTSTForPrediction
< source >( config: PatchTSTConfig )
Parâmetros
- config (PatchTSTConfig) — 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.
O modelo de previsão PatchTST.
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
< source >( past_values: Tensorpast_observed_mask: typing.Optional[torch.Tensor] = Nonefuture_values: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs )
Parâmetros
- past_values (
torch.Tensorde forma(bs, sequence_length, num_input_channels), obrigatório) — Sequência de entrada para o modelo - past_observed_mask (
torch.BoolTensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quaispast_valuesforam 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.Tensorde forma(bs, forecast_len, num_input_channels), opcional) — Valores futuros de destino associados apast_values - output_hidden_states (
bool, opcional) — Se as ocultas de todas as camadas devem ser retornadas - output_attentions (
bool, opcional) — Se deve ou não retornar a atenção de saída de todas as camadas - return_dict (
bool, opcional) — Se deve ou não retornar umModelOutputem vez de uma tupla simples.
Exemplos:
>>> from huggingface_hub import hf_hub_download
>>> import torch
>>> from transformers import PatchTSTConfig, PatchTSTForPrediction
>>> file = hf_hub_download(
... repo_id="hf-internal-testing/etth1-hourly-batch", filename="train-batch.pt", repo_type="dataset"
... )
>>> batch = torch.load(file)
>>> # Prediction task with 7 input channels and prediction length is 96
>>> model = PatchTSTForPrediction.from_pretrained("namctin/patchtst_etth1_forecast")
>>> # during training, one provides both past and future values
>>> outputs = model(
... past_values=batch["past_values"],
... future_values=batch["future_values"],
... )
>>> loss = outputs.loss
>>> loss.backward()
>>> # during inference, one only provides past values, the model outputs future values
>>> outputs = model(past_values=batch["past_values"])
>>> prediction_outputs = outputs.prediction_outputsPatchTSTForClassification
classe transformers.PatchTSTForClassification
< source >( config: PatchTSTConfig )
Parâmetros
- config (PatchTSTConfig) — 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.
O modelo PatchTST para classificaçã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
< source >( past_values: Tensortarget_values: typing.Optional[torch.Tensor] = Nonepast_observed_mask: bool | None = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → PatchTSTForClassificationOutput or tuple(torch.Tensor)
Parâmetros
- past_values (
torch.Tensorde forma(bs, sequence_length, num_input_channels), obrigatório) — Sequência de entrada para o modelo - target_values (
torch.Tensor, opcional) — Rótulos associados aospast_values - past_observed_mask (
torch.BoolTensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quaispast_valuesforam 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. Consultehidden_statesem tensors retornados para mais detalhes. - output_attentions (
bool, opcional) — Indica se os tensores de atenção de todas as camadas de atenção devem ser retornados. Consulteattentionsnos tensores retornados para mais detalhes. - return_dict (
bool, opcional) — Indica se deve retornar um ModelOutput em vez de uma tupla simples.
Retorna
PatchTSTForClassificationOutput ou tuple(torch.Tensor)
Um PatchTSTForClassificationOutput 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 (PatchTSTConfig) e das entradas.
O método forward de PatchTSTForClassification 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
Moduleem 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 whenlabelsis provided,torch.Tensorof shape(1,)) — Perda total como a soma da perda de modelagem de linguagem mascarada e da perda de classificação (previsão da próxima sequência).prediction_logits (
torch.Tensorde forma(batch_size, num_targets)) — Pontuações de previsão da cabeça de modelagem do PatchTST (pontuações antes do SoftMax).hidden_states (
tuple[torch.Tensor], opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) de forma(batch_size, sequence_length, hidden_size).Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.
attentions (
tuple[torch.Tensor], opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.Tensor(um para cada camada) com forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.
Exemplos:
>>> from transformers import PatchTSTConfig, PatchTSTForClassification
>>> # classification task with two input channel2 and 3 classes
>>> config = PatchTSTConfig(
... num_input_channels=2,
... num_targets=3,
... context_length=512,
... patch_length=12,
... stride=12,
... use_cls_token=True,
... )
>>> model = PatchTSTForClassification(config=config)
>>> # during inference, one only provides past values
>>> past_values = torch.randn(20, 512, 2)
>>> outputs = model(past_values=past_values)
>>> labels = outputs.prediction_logitsPatchTSTForPretraining
classe transformers.PatchTSTForPretraining
< source >( config: PatchTSTConfig )
Parâmetros
- config (PatchTSTConfig) — 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.
O PatchTST para o modelo de pré-treinamento.
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
< source >( past_values: Tensorpast_observed_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs )
Parâmetros
- past_values (
torch.Tensorde forma(bs, sequence_length, num_input_channels), obrigatório) — Sequência de entrada para o modelo - past_observed_mask (
torch.BoolTensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quaispast_valuesforam 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) — Se as ocultas de todas as camadas devem ser retornadas - output_attentions (
bool, opcional) — Se deve ou não retornar a atenção de saída de todas as camadas - return_dict (
bool, opcional) — Indica se deve retornar umModelOutputem vez de uma tupla simples.
Exemplos:
>>> from huggingface_hub import hf_hub_download
>>> import torch
>>> from transformers import PatchTSTConfig, PatchTSTForPretraining
>>> file = hf_hub_download(
... repo_id="hf-internal-testing/etth1-hourly-batch", filename="train-batch.pt", repo_type="dataset"
... )
>>> batch = torch.load(file)
>>> # Config for random mask pretraining
>>> config = PatchTSTConfig(
... num_input_channels=7,
... context_length=512,
... patch_length=12,
... stride=12,
... mask_type='random',
... random_mask_ratio=0.4,
... use_cls_token=True,
... )
>>> # Config for forecast mask pretraining
>>> config = PatchTSTConfig(
... num_input_channels=7,
... context_length=512,
... patch_length=12,
... stride=12,
... mask_type='forecast',
... num_forecast_mask_patches=5,
... use_cls_token=True,
... )
>>> model = PatchTSTForPretraining(config)
>>> # during training, one provides both past and future values
>>> outputs = model(past_values=batch["past_values"])
>>> loss = outputs.loss
>>> loss.backward()PatchTSTForRegression
classe transformers.PatchTSTForRegression
< source >( config: PatchTSTConfig )
Parâmetros
- config (PatchTSTConfig) — 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.
O modelo PatchTST para 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
< source >( past_values: Tensortarget_values: typing.Optional[torch.Tensor] = Nonepast_observed_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → PatchTSTForRegressionOutput or tuple(torch.Tensor)
Parâmetros
- past_values (
torch.Tensorde forma(bs, sequence_length, num_input_channels), obrigatório) — Sequência de entrada para o modelo - target_values (
torch.Tensorde forma(bs, num_input_channels)) — Valores-alvo associados aospast_values - past_observed_mask (
torch.BoolTensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quaispast_valuesforam 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).
Se deve ou não retornar um
ModelOutputem vez de uma tupla simples.
- output_hidden_states (
bool, opcional) — Indica se as hidden states de todas as camadas devem ser retornadas. Consultehidden_statesem tensors retornados para mais detalhes. - output_attentions (
bool, opcional) — Indica se os tensores de atenção de todas as camadas de atenção devem ser retornados. Consulteattentionsnos tensores retornados para mais detalhes. - return_dict (
bool, opcional) — Indica se deve retornar um ModelOutput em vez de uma tupla simples.
Retorna
PatchTSTForRegressionOutput ou tuple(torch.Tensor)
Um PatchTSTForRegressionOutput 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 (PatchTSTConfig) e das entradas.
O método forward de PatchTSTForRegression 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
Moduleem 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 whenlabelsis provided,torch.Tensorof shape(1,)) — MSE loss.regression_outputs (
torch.Tensorde forma(batch_size, num_targets)) — Saídas de regressão das cabeças de modelagem de séries temporais.hidden_states (
tuple[torch.Tensor], opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) de forma(batch_size, sequence_length, hidden_size).Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.
attentions (
tuple[torch.Tensor], opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.Tensor(um para cada camada) com forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.
Exemplos:
>>> from transformers import PatchTSTConfig, PatchTSTForRegression
>>> # Regression task with 6 input channels and regress 2 targets
>>> model = PatchTSTForRegression.from_pretrained("namctin/patchtst_etth1_regression")
>>> # during inference, one only provides past values, the model outputs future values
>>> past_values = torch.randn(20, 512, 6)
>>> outputs = model(past_values=past_values)
>>> regression_outputs = outputs.regression_outputs