Transformers documentation
PatchTSMixer
Este modelo se publicó en HF papers el 2023-06-14 y se contribuyó a Hugging Face Transformers el 2023-12-05.
PatchTSMixer
Resumen
El modelo PatchTSMixer fue propuesto en TSMixer: Lightweight MLP-Mixer Model for Multivariate Time Series Forecasting por Vijay Ekambaram, Arindam Jati, Nam Nguyen, Phanwadee Sinthong y Jayant Kalagnanam.
PatchTSMixer es un enfoque ligero de modelado de series temporales basado en la arquitectura MLP-Mixer. En esta implementación de HuggingFace, proporcionamos las capacidades de PatchTSMixer para facilitar sin esfuerzo el mezclado ligero entre parches, canales y características ocultas para un modelado efectivo de series temporales multivariadas. También admite varios mecanismos de atención, desde una atención simple con compuerta hasta bloques de autoatención más complejos que se pueden personalizar en consecuencia. El modelo se puede preentrenar y luego utilizar para diversas tareas posteriores, como predicción, clasificación y regresión.
El resumen del artículo es el siguiente:
TSMixer es una arquitectura neuronal ligera compuesta exclusivamente por módulos de perceptrones multicapa (MLP), diseñada para la predicción multivariante y el aprendizaje de representaciones en series temporales con parches. Nuestro modelo se inspira en el éxito de los modelos MLP-Mixer en visión por computadora. Demostramos los desafíos implicados en adaptar el Vision MLP-Mixer para series temporales e introducimos componentes validados empíricamente para mejorar la precisión. Esto incluye un nuevo paradigma de diseño que consiste en adjuntar cabezas de reconciliación en línea al esqueleto MLP-Mixer, para modelar explícitamente las propiedades de las series temporales, como la jerarquía y las correlaciones entre canales. También proponemos un enfoque de modelado híbrido de canales para manejar de manera efectiva las interacciones ruidosas entre canales y la generalización en conjuntos de datos diversos, un desafío común en los métodos existentes de mezcla de canales por parches. Además, se introduce un mecanismo de atención con compuerta simple en el esqueleto para priorizar las características importantes. Al incorporar estos componentes ligeros, mejoramos significativamente la capacidad de aprendizaje de las estructuras MLP simples, superando a los modelos Transformer complejos con un uso mínimo de cómputo. Además, el diseño modular de TSMixer permite la compatibilidad con métodos de aprendizaje supervisado y auto-supervisado enmascarado, lo que lo convierte en un bloque de construcción prometedor para los Modelos Fundacionales de series temporales. TSMixer supera a los modelos MLP y Transformer de última generación en predicción con un margen considerable del 8-60%. También supera a los últimos benchmarks fuertes de los modelos Patch-Transformer (por un 1-2%) con una reducción significativa en memoria y tiempo de ejecución (2-3X).
Este modelo fue aportado por ajati, vijaye12, gsinthong, namctin, wmgifford, kashif.
Ejemplo de uso
El fragmento de código siguiente muestra cómo inicializar aleatoriamente un modelo PatchTSMixer. El modelo es compatible con la 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)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 PatchTSMixerForTimeSeriesClassification y PatchTSMixerForRegression correspondientes.
Recursos
- Se puede encontrar un artículo de blog que explica PatchTSMixer a fondo aquí. El blog también se puede abrir en Google Colab.
PatchTSMixerConfig
clase transformers.PatchTSMixerConfig
< 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 = 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, valor predeterminado 32) — La longitud del contexto/historial para la secuencia de entrada. - patch_length (
int, opcional, valor predeterminado 8) — La longitud del parche para la secuencia de entrada. - num_input_channels (
int, opcional, valor predeterminado1) — El número de canales de entrada. - patch_stride (
int, opcional, valor predeterminado 8) — Determina la superposición entre dos parches consecutivos. Establézcalo en patch_length (o mayor) si se desean parches sin superposición. - num_parallel_samples (
int, opcional, valor predeterminado 100) — El número de muestras que se generan en paralelo para la predicción probabilística. - d_model (
int, opcional, valor predeterminado8) — Tamaño de las capas del codificador y de la capa pooler. - expansion_factor (
int, opcional, valor predeterminado 2) — Factor de expansión a utilizar dentro del MLP. El rango recomendado es de 2 a 5. Un valor mayor indica un modelo más complejo. - num_layers (
int, opcional, valor predeterminado3) — Número de capas ocultas en el decodificador del Transformer. - dropout (
Union[float, int], opcional, valor predeterminado0.2) — La proporción para todas las capas de dropout. - mode (
str, opcional, valor predeterminado"common_channel") — Modo de mezclador. Determina cómo procesar los canales. Valores permitidos: “common_channel”, “mix_channel”. En el modo “common_channel”, seguimos un modelado independiente de canales sin mezcla de canales explícita. La mezcla de canales ocurre de manera implícita a través de pesos compartidos entre canales. (enfoque preferido inicial) En el modo “mix_channel”, seguimos una mezcla de canales explícita además del mezclador de parches y características. (enfoque preferido cuando las correlaciones entre canales son muy importantes para el modelo) - gated_attn (
bool, opcional, valor predeterminadoTrue) — Habilita Gated Attention. - norm_mlp (
str, opcional, valor predeterminado"LayerNorm") — Capa de normalización (BatchNorm o LayerNorm). - self_attn (
bool, opcional, valor predeterminadoFalse) — Activa la autoatención de Tiny entre parches. Esto se puede habilitar cuando la salida de Vanilla PatchTSMixer con atención con compuerta no es satisfactoria. Habilitar esto conduce a una atención explícita por pares y modelado entre parches. - self_attn_heads (
int, opcional, valor predeterminado 1) — Número de cabezas de autoatención. Solo funciona cuandoself_attnestá establecido enTrue. - use_positional_encoding (
bool, opcional, valor predeterminadoFalse) — Habilita el uso de incrustaciones posicionales para las capas de autoatención pequeñas. Solo funciona cuandoself_attnestá establecido enTrue. - positional_encoding_type (
str, opcional, valor predeterminado"sincos") — Codificaciones posicionales. Se admiten las opciones"random"y"sincos". Solo funciona cuandouse_positional_encodingestá establecido enTrue - scaling (
stringobool, 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”. - loss (
string, 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”. - init_std (
float, opcional, valor predeterminado0.02) — La desviación estándar del truncated_normal_initializer para inicializar todas las matrices de pesos. - norm_eps (
float, opcional, valor predeterminado 1e-05) — Un valor que se suma al denominador para la estabilidad numérica de la normalización. - mask_type (
str, opcional, valor predeterminado"random") — Tipo de enmascaramiento a utilizar en el modo de entrenamiento con enmascaramiento. Los valores permitidos son “random” y “forecast”. En el enmascaramiento aleatorio, los puntos se enmascaran de forma aleatoria. En el enmascaramiento de predicción, los puntos se enmascaran hacia el final. - random_mask_ratio (
float, opcional, valor predeterminado 0.5) — Proporción de enmascaramiento a utilizar cuandomask_typeesrandom. Un valor más alto indica más enmascaramiento. - 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 según los números definidos en la lista. Este argumento solo se utiliza para el preentrenamiento de pronóstico. - mask_value (
float, opcional, valor predeterminado0.0) — Valor de máscara a utilizar. - masked_loss (
bool, opcional, valor predeterminadoTrue) — Si se debe calcular la pérdida de preentrenamiento solo en las porciones enmascaradas o en toda la salida. - channel_consistent_masking (
bool, opcional, valor predeterminadoTrue) — Si es true, la enmascaración será la misma en todos los canales de una serie temporal. De lo contrario, las posiciones de enmascaración variarán entre los canales. - unmasked_channel_indices (
list, opcional) — Canales que no se enmascaran durante el preentrenamiento. - head_dropout (
float, opcional, valor predeterminado 0.2) — La probabilidad de dropout de la cabeza dePatchTSMixer. - distribution_output (
string, 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”. - prediction_length (
int, opcional, valor predeterminado 16) — Número de pasos de tiempo para predecir en una tarea de pronóstico. También conocido como Horizonte de Pronóstico. - prediction_channel_indices (
list, opcional) — Lista de índices de canales a predecir. Si es None, se predice todos los canales. Se espera que los datos de destino tengan todos los canales y se filtran explícitamente los canales en la predicción y el destino antes de calcular la pérdida. - num_targets (
int, opcional, valor predeterminado 3) — Número de objetivos (dimensionalidad de la variable regresada) para una tarea de regresión. - output_range (
list, opcional) — Rango de salida para restringir la tarea de regresión. El valor predeterminado es None. - head_aggregation (
str, opcional, valor predeterminado"max_pool") — Modo de agregación para habilitar en tareas de clasificación o regresión. Los valores permitidos sonNone, “use_last”, “max_pool”, “avg_pool”.
Esta es la clase de configuración para almacenar la configuración de un PatchTSMixerModel. Se utiliza para instanciar un modelo Patchtsmixer 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/patchtsmixer-etth1-pretrain
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.
Ejemplo:
>>> 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.configPatchTSMixerModel
clase transformers.PatchTSMixerModel
< source >( config: PatchTSMixerConfigmask_input: bool = False )
Parámetros
- config (PatchTSMixerConfig) — 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.
- mask_input (
bool, opcional, valor predeterminadoFalse) — Si se debe enmascarar la entrada usando el móduloPatchTSMixerMasking.
El modelo PatchTSMixer para el pronóstico de series temporales.
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: Tensorobserved_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = None**kwargs ) → PatchTSMixerModelOutput or tuple(torch.Tensor)
Parámetros
- past_values (
torch.Tensorde forma(batch_size, seq_length, num_input_channels)) — Valores de contexto de la serie temporal. Para una tarea de preentrenamiento, esto denota la serie temporal de entrada para predecir la porción enmascarada. Para una tarea de pronóstico, esto denota los valores históricos/pasados de la serie temporal. De manera similar, para tareas de clasificación o regresión, denota los valores de contexto apropiados de la serie temporal.Para series de tiempo univariadas, la dimensión
num_input_channelsdebe ser 1. Para series de tiempo multivariadas, es mayor que 1. - observed_mask (
torch.Tensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quépast_valuesfueron observados 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.
Devuelve
PatchTSMixerModelOutput o tuple(torch.Tensor)
Un PatchTSMixerModelOutput 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 (PatchTSMixerConfig) y las entradas.
El método forward de PatchTSMixerModel 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.
- last_hidden_state (
torch.Tensorde forma(batch_size, num_channels, num_patches, d_model)) — Estado oculto en la salida de la última capa del modelo. - hidden_states (
tuple(torch.Tensor), opcional) — Estados ocultos del modelo en la salida de cada capa. - patch_input (
torch.Tensorde forma(batch_size, num_channels, num_patches, patch_length)) — Datos de entrada con parches para el modelo. - mask (
torch.Tensorde forma(batch_size, num_channels, num_patches), opcional) — Tensor booleano que indica True en los parches enmascarados y False en los demás. - loc (
torch.Tensorde forma(batch_size, 1, num_channels), opcional) — Indica la media de la ventana de contexto por canal. Se utiliza para la denormalización de revin fuera del modelo, si revin está habilitado. - scale (
torch.Tensorde forma(batch_size, 1, num_channels), opcional) — Indica la desviación estándar de la ventana de contexto por canal. Se utiliza para la denormalización de revin fuera del modelo, si revin está habilitado.
PatchTSMixerForPrediction
clase transformers.PatchTSMixerForPrediction
< source >( config: PatchTSMixerConfig )
PatchTSMixer para aplicaciones de predicción.
forward
< source >( 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.Tensorde forma(batch_size, seq_length, num_input_channels)) — Valores de contexto de la serie temporal. Para una tarea de preentrenamiento, esto denota la serie temporal de entrada para predecir la porción enmascarada. Para una tarea de pronóstico, esto denota los valores históricos/pasados de la serie temporal. De manera similar, para tareas de clasificación o regresión, denota los valores de contexto apropiados de la serie temporal.Para series de tiempo univariadas, la dimensión
num_input_channelsdebe ser 1. Para series de tiempo multivariadas, es mayor que 1. - observed_mask (
torch.Tensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quépast_valuesfueron observados 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(batch_size, target_len, num_input_channels)para predicción, —(batch_size, num_targets)para regresión, o(batch_size,)para clasificación, opcional): Valores objetivo de la serie temporal, que sirven como etiquetas para el modelo. Elfuture_valueses lo que el Transformer necesita durante el entrenamiento para aprender a generar, dado elpast_values. Tenga en cuenta que esto NO es obligatorio para una tarea de preentrenamiento.Para una tarea de predicción, la forma debe ser
(batch_size, target_len, num_input_channels). Incluso si queremos predecir solo canales específicos estableciendo los índices en el parámetroprediction_channel_indices, debemos pasar los datos objetivo con todos los canales, ya que el filtrado de canales para la predicción y el objetivo se aplicará manualmente antes del cálculo de la pérdida. - 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. - return_loss (
bool, opcional) — Si se debe devolver la pérdida en la llamada aforward.
Devuelve
PatchTSMixerForPredictionOutput o tuple(torch.Tensor)
Un PatchTSMixerForPredictionOutput 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 (PatchTSMixerConfig) y las entradas.
El método forward de PatchTSMixerForPrediction 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 whenyis provided,torch.Tensorof shape()) — Total loss. - prediction_outputs (
torch.Tensorde forma(batch_size, prediction_length, num_input_channels)) — Salida de predicción de la cabeza de pronóstico. - last_hidden_state (
torch.Tensorde forma(batch_size, num_input_channels, num_patches, d_model)) — Incrustaciones del backbone antes de pasar por la cabeza. - hidden_states (
tuple(torch.Tensor), opcional) — Estados ocultos del modelo en la salida de cada capa, más las salidas opcionales de la incrustación inicial. - loc (
torch.Tensor, opcional de forma(batch_size, 1, num_input_channels)) — Media de entrada - scale (
torch.Tensor, opcional de forma(batch_size, 1, num_input_channels)) — Desviación estándar de la entrada
PatchTSMixerForTimeSeriesClassification
clase transformers.PatchTSMixerForTimeSeriesClassification
< source >( config: PatchTSMixerConfig )
PatchTSMixer para aplicaciones de clasificación.
forward
< source >( 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.Tensorde forma(batch_size, seq_length, num_input_channels)) — Valores de contexto de la serie temporal. Para una tarea de preentrenamiento, esto denota la serie temporal de entrada para predecir la porción enmascarada. Para una tarea de pronóstico, esto denota los valores históricos/pasados de la serie temporal. De manera similar, para tareas de clasificación o regresión, denota los valores de contexto apropiados de la serie temporal.Para series de tiempo univariadas, la dimensión
num_input_channelsdebe ser 1. Para series de tiempo multivariadas, es mayor que 1. - target_values (
torch.Tensorde forma(batch_size, target_len, num_input_channels)para predicción, —(batch_size, num_targets)para regresión, o(batch_size,)para clasificación, opcional): Valores objetivo de la serie temporal, que sirven como etiquetas para el modelo. Lostarget_valuesson lo que elpast_values. Ten en cuenta que esto NO es necesario para una tarea de preentrenamiento.Para una tarea de predicción, la forma debe ser
(batch_size, target_len, num_input_channels). Incluso si queremos predecir solo canales específicos estableciendo los índices en el parámetroprediction_channel_indices, debemos pasar los datos objetivo con todos los canales, ya que el filtrado de canales para la predicción y el objetivo se aplicará manualmente antes del cálculo de la pérdida.Para una tarea de clasificación, tiene una forma de
(batch_size,).Para una tarea de regresión, tiene una forma de
(batch_size, num_targets). - 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. - return_loss (
bool, opcional) — Si se debe devolver la pérdida en la llamada aforward.
Devuelve
PatchTSMixerForTimeSeriesClassificationOutput o tuple(torch.Tensor)
Un PatchTSMixerForTimeSeriesClassificationOutput 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 (PatchTSMixerConfig) y las entradas.
El método forward de PatchTSMixerForTimeSeriesClassification sobrescribe 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 whenyis provided,torch.Tensorof shape()) — Total loss. - prediction_outputs (
torch.Tensorde forma(batch_size, num_labels)) — Salida de predicción de la cabeza de clasificación. - last_hidden_state (
torch.Tensorde forma(batch_size, num_input_channels, num_patches, d_model)) — Incrustaciones del backbone antes de pasar por la cabeza. - hidden_states (
tuple(torch.Tensor), opcional) — Estados ocultos del modelo en la salida de cada capa, más las salidas opcionales de la incrustación inicial.
PatchTSMixerForPretraining
clase transformers.PatchTSMixerForPretraining
< source >( config: PatchTSMixerConfig )
Parámetros
- config (PatchTSMixerConfig) — 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.
PatchTSMixer para el preentrenamiento con máscaras.
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: 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.Tensorde forma(batch_size, seq_length, num_input_channels)) — Valores de contexto de la serie temporal. Para una tarea de preentrenamiento, esto denota la serie temporal de entrada para predecir la porción enmascarada. Para una tarea de pronóstico, esto denota los valores históricos/pasados de la serie temporal. De manera similar, para tareas de clasificación o regresión, denota los valores de contexto apropiados de la serie temporal.Para series de tiempo univariadas, la dimensión
num_input_channelsdebe ser 1. Para series de tiempo multivariadas, es mayor que 1. - observed_mask (
torch.Tensorde forma(batch_size, sequence_length, num_input_channels), opcional) — Máscara booleana para indicar quépast_valuesfueron observados 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. - return_loss (
bool, opcional) — Si se debe devolver la pérdida en la llamada aforward.
Devuelve
PatchTSMixerForPreTrainingOutput o tuple(torch.Tensor)
Un PatchTSMixerForPreTrainingOutput 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 (PatchTSMixerConfig) y las entradas.
El método forward de PatchTSMixerForPretraining 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 whenyis provided,torch.Tensorof shape()) — Total loss - prediction_outputs (
torch.Tensorde forma(batch_size, num_input_channels, num_patches, patch_length)) — Salida de predicción de la cabeza de preentrenamiento. - last_hidden_state (
torch.Tensorde forma(batch_size, num_input_channels, num_patches, d_model)) — Incrustaciones del backbone antes de pasar por la cabeza. - hidden_states (
tuple(torch.Tensor), opcional) — Estados ocultos del modelo en la salida de cada capa.
PatchTSMixerForRegression
clase transformers.PatchTSMixerForRegression
< source >( config: PatchTSMixerConfig )
Parámetros
- config (PatchTSMixerConfig) — 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.
PatchTSMixer para aplicaciones de 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] = Noneoutput_hidden_states: bool | None = Nonereturn_loss: bool = True**kwargs ) → PatchTSMixerForRegressionOutput or tuple(torch.Tensor)
Parámetros
- past_values (
torch.Tensorde forma(batch_size, seq_length, num_input_channels)) — Valores de contexto de la serie temporal. Para una tarea de preentrenamiento, esto denota la serie temporal de entrada para predecir la porción enmascarada. Para una tarea de pronóstico, esto denota los valores históricos/pasados de la serie temporal. De manera similar, para tareas de clasificación o regresión, denota los valores de contexto apropiados de la serie temporal.Para series de tiempo univariadas, la dimensión
num_input_channelsdebe ser 1. Para series de tiempo multivariadas, es mayor que 1. - target_values (
torch.Tensorde forma(batch_size, target_len, num_input_channels)para predicción, —(batch_size, num_targets)para regresión, o(batch_size,)para clasificación, opcional): Valores objetivo de la serie temporal, que sirven como etiquetas para el modelo. Eltarget_valueses lo que el Transformer necesita durante el entrenamiento para aprender a producir, dado elpast_values. Tenga en cuenta que esto NO es obligatorio para una tarea de preentrenamiento.Para una tarea de predicción, la forma debe ser
(batch_size, target_len, num_input_channels). Incluso si queremos predecir solo canales específicos estableciendo los índices en el parámetroprediction_channel_indices, debemos pasar los datos objetivo con todos los canales, ya que el filtrado de canales para la predicción y el objetivo se aplicará manualmente antes del cálculo de la pérdida.Para una tarea de clasificación, tiene una forma de
(batch_size,).Para una tarea de regresión, tiene una forma de
(batch_size, num_targets). - 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. - return_loss (
bool, opcional) — Si se debe devolver la pérdida en la llamada aforward.
Devuelve
PatchTSMixerForRegressionOutput o tuple(torch.Tensor)
Un PatchTSMixerForRegressionOutput 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 (PatchTSMixerConfig) y las entradas.
El método forward de PatchTSMixerForRegression 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 whenyis provided,torch.Tensorof shape()) — Total loss. - regression_outputs (
torch.Tensorde forma(batch_size, num_targets)) — Salida de predicción de la cabeza de regresión. - last_hidden_state (
torch.Tensorde forma(batch_size, num_input_channels, num_patches, d_model)) — Incrustaciones del backbone antes de pasar por la cabeza. - hidden_states (
tuple(torch.Tensor), opcional) — Estados ocultos del modelo en la salida de cada capa, más las salidas opcionales de la incrustación inicial.