Transformers documentation
PatchTST
Este modelo se publicó en HF papers el 27-11-2022 y se contribuyó a Hugging Face Transformers el 13-11-2023.
PatchTST
Resumen
El modelo PatchTST fue propuesto en A Time Series is Worth 64 Words: Long-term Forecasting with Transformers por Yuqi Nie, Nam H. Nguyen, Phanwadee Sinthong y Jayant Kalagnanam.
A alto nivel, el modelo vectoriza las series temporales en parches de un tamaño dado y codifica la secuencia resultante de vectores mediante un Transformer, que luego genera la predicción de la longitud especificada a través de una cabeza adecuada. El modelo se ilustra en la siguiente figura:
El resumen del artículo es el siguiente:
Proponemos un diseño eficiente de modelos basados en Transformer para la predicción de series temporales multivariadas y el aprendizaje de representaciones auto-supervisadas. Se basa en dos componentes clave: (i) la segmentación de las series temporales en parches a nivel de subseries que se sirven como tokens de entrada al Transformer; (ii) la independencia de canal, donde cada canal contiene una única serie temporal univariada que comparte la misma incrustación y los mismos pesos del Transformer en todas las series. El diseño de parches tiene naturalmente un triple beneficio: se conserva la información semántica local en la incrustación; el uso de cómputo y memoria de los mapas de atención se reduce cuadráticamente dado el mismo ventana de retroceso; y el modelo puede atender a un historial más largo. Nuestro Transformer de series temporales por parches con independencia de canal (PatchTST) puede mejorar significativamente la precisión de la predicción a largo plazo en comparación con la de los modelos basados en Transformer del estado del arte. También aplicamos nuestro modelo a tareas de pre-entrenamiento auto-supervisado y obtenemos un excelente rendimiento de ajuste fino, que supera al entrenamiento supervisado en grandes conjuntos de datos. La transferencia de representaciones pre-entrenadas con enmascarado de un conjunto de datos a otros también produce una precisión de predicción del estado del arte.
Este modelo fue aportado por namctin, gsinthong, diepi, vijaye12, wmgifford y kashif. El código original se puede encontrar aquí.
Consejos de uso
El modelo también puede utilizarse para la clasificación de series temporales y la regresión de series temporales. Consulte las clases PatchTSTForClassification y PatchTSTForRegression correspondientes.
Recursos
- Se puede encontrar un artículo de blog que explica PatchTST a fondo aquí. El blog también se puede abrir en Google Colab.
PatchTSTConfig
clase 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, valor predeterminado1) — El número de canales de entrada. - context_length (
int, opcional, valor predeterminado 32) — La longitud de contexto de la secuencia de entrada. - distribution_output (
str, opcional, valor predeterminado"student_t") — La cabeza de emisión de distribución del modelo cuando la pérdida es “nll”. Puede ser “student_t”, “normal” o “negative_binomial”. - loss (
str, opcional, valor predeterminado"mse") — La función de pérdida del modelo correspondiente a la cabeceradistribution_output. Para distribuciones paramétricas es la verosimilitud negativa (“nll”) y para estimaciones puntuales es el error cuadrático medio “mse”. - patch_length (
int, opcional, valor predeterminado 1) — Define la longitud del parche del proceso de parchificación. - patch_stride (
int, opcional, valor predeterminado 1) — Define el paso del proceso de parchificación. - num_hidden_layers (
int, opcional, valor predeterminado3) — Número de capas ocultas en el decodificador del Transformer. - d_model (
int, opcional, valor predeterminado128) — Tamaño de las capas del codificador y de la capa pooler. - num_attention_heads (
int, opcional, valor predeterminado 4) — Número de cabezas de atención para cada capa de atención en el codificador Transformer. - share_embedding (
bool, opcional, valor predeterminadoTrue) — Compartir la incrustación de entrada entre todos los canales. - channel_attention (
bool, opcional, valor predeterminadoFalse) — Activa el bloque de atención de canal en el Transformer para permitir que los canales presten atención entre sí. - ffn_dim (
int, opcional, valor predeterminado 512) — Dimensión de la capa “intermedia” (a menudo denominada feed-forward) en el codificador Transformer. - norm_type (
str, opcional, por defecto"batchnorm") — Normalización en cada capa de Transformer. Puede ser"batchnorm"o"layernorm". - norm_eps (
float, opcional, valor predeterminado 1e-05) — Un valor que se suma al denominador para la estabilidad numérica de la normalización. - attention_dropout (
Union[float, int], opcional, valor predeterminado0.0) — La proporción de dropout para las probabilidades de atención. - positional_dropout (
float, opcional, valor predeterminado 0.0) — La probabilidad de dropout en la capa de incrustación posicional. - path_dropout (
float, opcional, valor predeterminado 0.0) — La tasa de dropout en el bloque residual. - ff_dropout (
float, opcional, valor predeterminado 0.0) — La probabilidad de dropout utilizada entre las dos capas de las redes feed-forward. - bias (
bool, opcional, valor predeterminadoTrue) — Si se debe añadir sesgo en las redes feed-forward. - activation_function (
str, opcional, valor predeterminado"gelu") — La función de activación no lineal (cadena) en el Transformer. Se admiten"gelu"y"relu". - pre_norm (
bool, opcional, valor predeterminadoTrue) — La normalización se aplica antes de la autoatención si pre_norm se establece enTrue. De lo contrario, la normalización se aplica después del bloque residual. - positional_encoding_type (
str, opcional, valor predeterminado"sincos") — Codificaciones posicionales. Se admiten las opciones"random"y"sincos". - use_cls_token (
bool, opcional, valor predeterminadoFalse) — Si se utiliza el token cls. - init_std (
float, opcional, valor predeterminado 0.02) — La desviación estándar de la distribución de inicialización de pesos normal truncada. - share_projection (
bool, opcional, valor predeterminadoTrue) — Compartir la capa de proyección entre diferentes canales en la cabeza de predicción. - scaling (
Union, opcional, valor predeterminado"std") — Si se deben escalar los objetivos de entrada mediante el escalador “mean”, el escalador “std” o sin escalador si esNone. Si esTrue, el escalador se establece en “mean”. - do_mask_input (
bool, opcional) — Aplica enmascaramiento durante el preentrenamiento. - mask_type (
str, opcional, por defecto"random") — Tipo de enmascaramiento. Actualmente solo se admiten"random"y"forecast". - random_mask_ratio (
float, opcional, valor predeterminado 0.5) — Proporción de enmascaramiento aplicada para enmascarar los datos de entrada durante el preentrenamiento aleatorio. - num_forecast_mask_patches (
intolist, opcional, valor predeterminado[2]) — Número de parches que se van a enmascarar al final de cada muestra del lote. Si es un entero, todas las muestras del lote tendrán el mismo número de parches enmascarados. Si es una lista, las muestras del lote se enmascararán aleatoriamente con los números definidos en la lista. Este argumento solo se utiliza para el preentrenamiento de pronóstico. - channel_consistent_masking (
bool, opcional, valor predeterminadoFalse) — Si el enmascaramiento consistente por canal es True, todos los canales tendrán el mismo patrón de enmascaramiento. - unmasked_channel_indices (
list, opcional) — Índices de los canales que no se enmascaran durante el preentrenamiento. Los valores de la lista son números entre 1 ynum_input_channels - mask_value (
int, opcional, valor predeterminado 0) — Los valores en los parches enmascarados se rellenarán conmask_value. - pooling_type (
str, opcional, valor predeterminado"mean") — Pooled de la incrustación. Se admiten"mean","max"yNone. - head_dropout (
float, opcional, valor predeterminado 0.0) — La probabilidad de dropout para la cabeza. - prediction_length (
int, opcional, valor predeterminado 24) — El horizonte de predicción que el modelo generará. - num_targets (
int, opcional, valor predeterminado 1) — Número de objetivos para tareas de regresión y clasificación. En el caso de clasificación, es el número de clases. - output_range (
list, opcional) — Rango de salida para la tarea de regresión. El rango de los valores de salida se puede establecer para forzar al modelo a producir valores dentro de un rango. - num_parallel_samples (
int, opcional, valor predeterminado 100) — El número de muestras que se generan en paralelo para la predicción probabilística.
Esta es la clase de configuración para almacenar la configuración de un PatchTSTModel. Se utiliza para instanciar un modelo Patchtst según los argumentos especificados, definiendo la arquitectura del modelo. Instanciar una configuración con los valores predeterminados producirá una configuración similar a la de ibm-granite/granite-timeseries-patchtst
Los objetos de configuración heredan de PreTrainedConfig y se pueden usar para controlar las salidas del modelo. Lea la documentación de PreTrainedConfig para obtener más información.
>>> 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
clase transformers.PatchTSTModel
< source >( config: PatchTSTConfig )
Parámetros
- config (PatchTSTConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
El modelo Patchtst básico que emite estados ocultos sin ningún cabezal específico en la parte superior.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
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), obligatorio) — Secuencia de entrada para el modelo - past_observed_mask (
torch.BoolTensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quépast_valuesse observaron y cuáles faltaron. Valores de la máscara seleccionados en[0, 1]:- 1 para los valores que son observados,
- 0 para los valores que están ausentes (es decir, NaNs que fueron reemplazados por ceros).
- future_values (
torch.BoolTensorde forma(batch_size, prediction_length, num_input_channels), opcional) — Valores de destino futuros asociados apast_values - output_hidden_states (
bool, opcional) — Si se deben devolver o no los estados ocultos de todas las capas - output_attentions (
bool, opcional) — Si se devuelve o no la atención de salida de todas las capas - return_dict (
bool, opcional) — Indica si se debe devolver unModelOutputen lugar de una tupla simple.
Ejemplos:
>>> 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
clase transformers.PatchTSTForPrediction
< source >( config: PatchTSTConfig )
Parámetros
- config (PatchTSTConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
El modelo de predicción PatchTST.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
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), obligatorio) — Secuencia de entrada para el modelo - past_observed_mask (
torch.BoolTensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quépast_valuesse observaron y cuáles faltaron. Valores de la máscara seleccionados en[0, 1]:- 1 para los valores que son observados,
- 0 para los valores que están ausentes (es decir, NaNs que fueron reemplazados por ceros).
- future_values (
torch.Tensorde forma(bs, forecast_len, num_input_channels), opcional) — Valores objetivo futuros asociados conpast_values - output_hidden_states (
bool, opcional) — Si se deben devolver o no los estados ocultos de todas las capas - output_attentions (
bool, opcional) — Si se devuelve o no la atención de salida de todas las capas - return_dict (
bool, opcional) — Indica si se debe devolver unModelOutputen lugar de una tupla simple.
Ejemplos:
>>> 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
clase transformers.PatchTSTForClassification
< source >( config: PatchTSTConfig )
Parámetros
- config (PatchTSTConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
El modelo PatchTST para clasificación.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
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), obligatorio) — Secuencia de entrada para el modelo - target_values (
torch.Tensor, opcional) — Etiquetas asociadas conpast_values - past_observed_mask (
torch.BoolTensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quépast_valuesse observaron y cuáles faltaron. Valores de la máscara seleccionados en[0, 1]:- 1 para los valores que son observados,
- 0 para los valores que están ausentes (es decir, NaNs que fueron reemplazados por ceros).
- output_hidden_states (
bool, opcional) — Indica si se deben devolver los estados ocultos de todas las capas. Consultehidden_statesen los tensores devueltos para obtener más detalles. - output_attentions (
bool, opcional) — Indica si se deben devolver los tensores de atención de todas las capas de atención. Consulteattentionsen los tensores devueltos para obtener más detalles. - return_dict (
bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.
Devuelve
PatchTSTForClassificationOutput o tuple(torch.Tensor)
Un PatchTSTForClassificationOutput o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (PatchTSTConfig) y las entradas.
El método forward de PatchTSTForClassification reemplaza el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
loss (
*optional*, returned whenlabelsis provided,torch.Tensorof shape(1,)) — Pérdida total como la suma de la pérdida de modelado de lenguaje enmascarado y la pérdida de predicción de la siguiente secuencia (clasificación).prediction_logits (
torch.Tensorde forma(batch_size, num_targets)) — Puntuaciones de predicción de la cabeza de modelado de PatchTST (puntuaciones antes de SoftMax).hidden_states (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del modelo en la salida de cada capa más las salidas opcionales de la incrustación inicial.
attentions (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
Ejemplos:
>>> 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
clase transformers.PatchTSTForPretraining
< source >( config: PatchTSTConfig )
Parámetros
- config (PatchTSTConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
El modelo PatchTST para preentrenamiento.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
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), obligatorio) — Secuencia de entrada para el modelo - past_observed_mask (
torch.BoolTensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quépast_valuesse observaron y cuáles faltaron. Valores de la máscara seleccionados en[0, 1]:- 1 para los valores que son observados,
- 0 para los valores que están ausentes (es decir, NaNs que fueron reemplazados por ceros).
- output_hidden_states (
bool, opcional) — Si se deben devolver o no los estados ocultos de todas las capas - output_attentions (
bool, opcional) — Si se devuelve o no la atención de salida de todas las capas - return_dict (
bool, opcional) — Indica si se debe devolver unModelOutputen lugar de una tupla simple.
Ejemplos:
>>> 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
clase transformers.PatchTSTForRegression
< source >( config: PatchTSTConfig )
Parámetros
- config (PatchTSTConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
El modelo PatchTST para regresión.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
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), obligatorio) — Secuencia de entrada para el modelo - target_values (
torch.Tensorde forma(bs, num_input_channels)) — Valores objetivo asociados apast_values - past_observed_mask (
torch.BoolTensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quépast_valuesfueron observados y cuáles faltaban. Valores de la máscara seleccionados en [0, 1]: 1 para valores observados, 0 para valores faltantes (es decir, NaNs que fueron reemplazados por ceros). Si se debe devolver un ModelOutput en lugar de una tupla simple.[0, 1]:- 1 para los valores que son observados,
- 0 para los valores que están ausentes (es decir, NaNs que fueron reemplazados por ceros).
Si se devuelve un
ModelOutputen lugar de una tupla simple.
- output_hidden_states (
bool, opcional) — Indica si se deben devolver los estados ocultos de todas las capas. Consultehidden_statesen los tensores devueltos para obtener más detalles. - output_attentions (
bool, opcional) — Indica si se deben devolver los tensores de atención de todas las capas de atención. Consulteattentionsen los tensores devueltos para obtener más detalles. - return_dict (
bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.
Devuelve
PatchTSTForRegressionOutput o tuple(torch.Tensor)
Un PatchTSTForRegressionOutput o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (PatchTSTConfig) y las entradas.
El método forward de PatchTSTForRegression reemplaza el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
loss (
*optional*, returned whenlabelsis provided,torch.Tensorof shape(1,)) — MSE loss.regression_outputs (
torch.Tensorde forma(batch_size, num_targets)) — Salidas de regresión de las cabezas de modelado de series temporales.hidden_states (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del modelo en la salida de cada capa más las salidas opcionales de la incrustación inicial.
attentions (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
Ejemplos:
>>> 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