Transformers 文件

PatchTSMixer

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

PatchTSMixer

PyTorch

概述

PatchTSMixer 模型由 Vijay Ekambaram、Arindam Jati、Nam Nguyen、Phanwadee Sinthong 和 Jayant Kalagnanam 在 TSMixer: 輕量級 MLP-Mixer 模型用於多元時間序列預測 中提出。

PatchTSMixer 是一種基於 MLP-Mixer 架構的輕量級時間序列建模方法。在此 HuggingFace 實現中,我們提供了 PatchTSMixer 的功能,以輕鬆促進跨補丁、通道和隱藏特徵的輕量級混合,從而實現有效的多元時間序列建模。它還支援各種注意力機制,從簡單的門控注意力到更復雜的自注意力塊,可以相應地進行自定義。該模型可以進行預訓練,隨後用於各種下游任務,例如預測、分類和迴歸。

論文摘要如下:

TSMixer 是一種輕量級神經網路架構,完全由多層感知器 (MLP) 模組組成,專為補丁化時間序列的多元預測和表示學習而設計。我們的模型從計算機視覺中 MLP-Mixer 模型的成功中汲取靈感。我們展示了將 Vision MLP-Mixer 適應時間序列所面臨的挑戰,並引入了經驗驗證的元件以提高準確性。這包括一種新穎的設計正規化,即在 MLP-Mixer 骨幹網路上附加線上協調頭,用於明確建模時間序列屬性,例如層次結構和通道相關性。我們還提出了一種混合通道建模方法,以有效處理嘈雜的通道互動和跨不同資料集的泛化,這是現有補丁通道混合方法中的常見挑戰。此外,在骨幹網路中引入了一種簡單的門控注意力機制,以優先考慮重要特徵。透過整合這些輕量級元件,我們顯著增強了簡單 MLP 結構的學習能力,以最小的計算量優於複雜的 Transformer 模型。此外,TSMixer 的模組化設計使其與監督和掩碼自監督學習方法相容,使其成為時間序列基礎模型的有前景的構建塊。TSMixer 在預測方面以 8-60% 的顯著優勢優於最先進的 MLP 和 Transformer 模型。它還以顯著降低記憶體和執行時(2-3 倍)的優勢優於最新的 Patch-Transformer 模型的強大基準(1-2%)。

該模型由 ajativijaye12gsinthongnamctinwmgiffordkashif 貢獻。

使用示例

以下程式碼片段展示瞭如何隨機初始化 PatchTSMixer 模型。該模型與 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)

使用技巧

該模型還可用於時間序列分類和時間序列迴歸。請參閱相應的 PatchTSMixerForTimeSeriesClassificationPatchTSMixerForRegression 類。

資源

  • 此處提供了一篇深入解釋 PatchTSMixer 的部落格文章:此處。該部落格也可在 Google Colab 中開啟。

PatchTSMixerConfig

class transformers.PatchTSMixerConfig

< >

( context_length: int = 32 patch_length: int = 8 num_input_channels: int = 1 patch_stride: int = 8 num_parallel_samples: int = 100 d_model: int = 8 expansion_factor: int = 2 num_layers: int = 3 dropout: float = 0.2 mode: str = 'common_channel' gated_attn: bool = True norm_mlp: str = 'LayerNorm' self_attn: bool = False self_attn_heads: int = 1 use_positional_encoding: bool = False positional_encoding_type: str = 'sincos' scaling: typing.Union[str, bool, NoneType] = 'std' loss: str = 'mse' init_std: float = 0.02 post_init: bool = False norm_eps: float = 1e-05 mask_type: str = 'random' random_mask_ratio: float = 0.5 num_forecast_mask_patches: typing.Union[list[int], int, NoneType] = [2] mask_value: int = 0 masked_loss: bool = True channel_consistent_masking: bool = True unmasked_channel_indices: typing.Optional[list[int]] = None head_dropout: float = 0.2 distribution_output: str = 'student_t' prediction_length: int = 16 prediction_channel_indices: typing.Optional[list] = None num_targets: int = 3 output_range: typing.Optional[list] = None head_aggregation: str = 'max_pool' **kwargs )

引數

  • context_length (int, 可選, 預設為 32) — 輸入序列的上下文/歷史長度。
  • patch_length (int, 可選, 預設為 8) — 輸入序列的補丁長度。
  • num_input_channels (int, 可選, 預設為 1) — 輸入變數的數量。對於單變數時間序列,設定為 1。
  • patch_stride (int, 可選, 預設為 8) — 確定兩個連續補丁之間的重疊。如果需要非重疊補丁,請將其設定為 patch_length(或更大)。
  • num_parallel_samples (int, 可選, 預設為 100) — 為機率預測並行生成的樣本數。
  • d_model (int, 可選, 預設為 8) — 模型的隱藏維度。建議設定為 patch_length 的倍數(即 patch_length 的 2-5 倍)。值越大表示模型越複雜。
  • expansion_factor (int, 可選, 預設為 2) — MLP 內部使用的擴充套件因子。建議範圍為 2-5。值越大表示模型越複雜。
  • num_layers (int, 可選, 預設為 3) — 要使用的層數。建議範圍為 3-15。值越大表示模型越複雜。
  • dropout (float, 可選, 預設為 0.2) — PatchTSMixer 骨幹網路的 dropout 機率。建議範圍為 0.2-0.7。
  • mode (str, 可選, 預設為 "common_channel") — 混合器模式。確定如何處理通道。允許的值:“common_channel”、“mix_channel”。在“common_channel”模式下,我們遵循通道獨立建模,沒有顯式通道混合。通道混合透過跨通道共享權重以隱式方式發生。(首選方法)在“mix_channel”模式下,除了補丁和特徵混合器之外,我們還遵循顯式通道混合。(當通道相關性對於建模非常重要時,首選方法)
  • gated_attn (bool, 可選, 預設為 True) — 啟用門控注意力。
  • norm_mlp (str, 可選, 預設為 "LayerNorm") — 歸一化層 (BatchNorm 或 LayerNorm)。
  • self_attn (bool, 可選, 預設為 False) — 啟用跨補丁的微小自注意力。當帶有門控注意力的 Vanilla PatchTSMixer 輸出不令人滿意時,可以啟用此功能。啟用此功能會帶來顯式的補丁間成對注意力和建模。
  • self_attn_heads (int, 可選, 預設為 1) — 自注意力頭的數量。僅當 self_attn 設定為 True 時有效。
  • use_positional_encoding (bool, 可選, 預設為 False) — 是否為微小自注意力層啟用位置嵌入。僅當 self_attn 設定為 True 時有效。
  • positional_encoding_type (str, 可選, 預設為 "sincos") — 位置編碼。支援 "random""sincos" 選項。僅當 use_positional_encoding 設定為 True 時有效。
  • scaling (stringbool, 可選, 預設為 "std") — 是否透過“mean”縮放器、“std”縮放器縮放輸入目標,如果為 None 則不縮放。如果為 True,則縮放器設定為“mean”。
  • loss (string, 可選, 預設為 "mse") — 與 distribution_output 頭對應的模型的損失函式。對於引數分佈,它是負對數似然 (“nll”),對於點估計,它是均方誤差 “mse”。
  • init_std (float, 可選, 預設為 0.02) — 截斷正態權重初始化分佈的標準差。
  • post_init (bool, 可選, 預設為 False) — 是否使用 transformers 庫中的自定義權重初始化,或 PyTorch 中的預設初始化。設定為 False 將執行 PyTorch 權重初始化。
  • norm_eps (float, 可選, 預設為 1e-05) — 為規範化數值穩定性新增到分母的值。
  • mask_type (str, 可選, 預設為 "random") — 用於掩碼預訓練模式的掩碼型別。允許的值為“random”、“forecast”。在隨機掩碼中,點被隨機掩碼。在預測掩碼中,點被掩碼到末尾。
  • random_mask_ratio (float, 可選, 預設為 0.5) — 當 mask_typerandom 時使用的掩碼比率。值越高表示掩碼越多。
  • num_forecast_mask_patches (intlist, 可選, 預設為 [2]) — 在每個批次樣本末尾要掩碼的補丁數量。如果為整數,則批次中的所有樣本將具有相同數量的掩碼補丁。如果為列表,則批次中的樣本將由列表中定義的數字隨機掩碼。此引數僅用於預測預訓練。
  • mask_value (float, 可選, 預設為 0.0) — 要使用的掩碼值。
  • masked_loss (bool, 可選, 預設為 True) — 是否僅在掩碼部分計算預訓練損失,或在整個輸出上計算。
  • channel_consistent_masking (bool, 可選, 預設為 True) — 如果為 true,則時間序列所有通道的掩碼將相同。否則,掩碼位置將因通道而異。
  • unmasked_channel_indices (list, 可選) — 預訓練期間未掩碼的通道索引。
  • head_dropout (float, 可選, 預設為 0.2) — PatchTSMixer 頭的 dropout 機率。
  • distribution_output (string, 可選, 預設為 "student_t") — 當損失為“nll”時,模型的分發輸出頭。可以是“student_t”、“normal”或“negative_binomial”。
  • prediction_length (int, 可選, 預設為 16) — 預測任務要預測的時間步數。也稱為預測範圍。
  • prediction_channel_indices (list, 可選) — 要預測的通道索引列表。如果為 None,則預測所有通道。目標資料預期包含所有通道,我們在計算損失之前顯式過濾預測和目標中的通道。
  • num_targets (int, 可選, 預設為 3) — 迴歸任務的目標數量(迴歸變數的維度)。
  • output_range (list, 可選) — 用於迴歸任務的輸出範圍限制。預設為 None。
  • head_aggregation (str, 可選, 預設為 "max_pool") — 分類或迴歸任務的聚合模式。允許的值為 None、“use_last”、“max_pool”、“avg_pool”。

這是配置類,用於儲存 PatchTSMixerModel 的配置。它用於根據指定引數例項化 PatchTSMixer 模型,定義模型架構。使用預設值例項化配置將產生與 PatchTSMixer ibm/patchtsmixer-etth1-pretrain 架構類似的配置。

配置物件繼承自 PretrainedConfig,可用於控制模型輸出。有關更多資訊,請閱讀 PretrainedConfig 的文件。

示例

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

class transformers.PatchTSMixerModel

< >

( config: PatchTSMixerConfig mask_input: bool = False )

引數

  • config (PatchTSMixerConfig) — 模型配置類,包含模型的所有引數。使用配置檔案初始化不載入與模型關聯的權重,僅載入配置。請檢視 from_pretrained() 方法以載入模型權重。
  • mask_input (bool, 可選, 預設為 False) — 是否使用 PatchTSMixerMasking 模組對輸入進行掩碼。

用於時間序列預測的 PatchTSMixer 模型。

此模型繼承自 PreTrainedModel。請檢視超類文件,瞭解庫為其所有模型實現的一般方法(例如下載或儲存、調整輸入嵌入大小、修剪頭部等)。

此模型也是 PyTorch torch.nn.Module 的子類。將其作為常規 PyTorch Module 使用,並參考 PyTorch 文件中所有與一般用法和行為相關的事項。

forward

< >

( past_values: Tensor observed_mask: typing.Optional[torch.Tensor] = None output_hidden_states: typing.Optional[bool] = False return_dict: typing.Optional[bool] = None ) transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerModelOutputtuple(torch.FloatTensor)

引數

  • past_values (形狀為 (batch_size, seq_length, num_input_channels)torch.FloatTensor) — 時間序列的上下文值。對於預訓練任務,這表示用於預測掩碼部分的輸入時間序列。對於預測任務,這表示歷史/過去時間序列值。類似地,對於分類或迴歸任務,它表示時間序列的適當上下文值。

    對於單變數時間序列,num_input_channels 維度應為 1。對於多變數時間序列,它大於 1。

  • observed_mask (形狀為 (batch_size, sequence_length, num_input_channels)torch.FloatTensor, 可選) — 布林掩碼,指示哪些 past_values 被觀測到,哪些缺失。掩碼值在 [0, 1] 中選擇:

    • 對於觀測值,為 1,
    • 對於缺失值(即被零替換的 NaN),為 0。
  • output_hidden_states (bool, 可選, 預設為 False) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 hidden_states
  • return_dict (bool, 可選) — 是否返回 ModelOutput 而不是普通元組。

返回

transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerModelOutputtuple(torch.FloatTensor)

一個 transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerModelOutput 或一個 torch.FloatTensor 元組(如果傳遞了 return_dict=Falseconfig.return_dict=False),其中包含各種元素,具體取決於配置 (PatchTSMixerConfig) 和輸入。

  • last_hidden_state (形狀為 (batch_size, num_channels, num_patches, d_model)torch.FloatTensor) — 模型最後一層的隱藏狀態輸出。
  • hidden_states (tuple(torch.FloatTensor), 可選) — 模型每層的隱藏狀態。
  • patch_input (形狀為 (batch_size, num_channels, num_patches, patch_length)torch.FloatTensor) — 模型的補丁輸入資料。
  • mask (形狀為 (batch_size, num_channels, num_patches)torch.FloatTensor, 可選) — 布林張量,指示掩碼補丁為 True,否則為 False。
  • loc (torch.FloatTensor,形狀為 (batch_size, 1, num_channels)可選) — 提供每個通道的上下文視窗平均值。如果啟用了 revin,則用於模型外部的 revin denorm。
  • scale (torch.FloatTensor,形狀為 (batch_size, 1, num_channels)可選) — 提供每個通道的上下文視窗標準差。如果啟用了 revin,則用於模型外部的 revin denorm。

PatchTSMixerModel 的前向方法,覆蓋了 __call__ 特殊方法。

儘管前向傳播的實現需要在該函式中定義,但之後應該呼叫 Module 例項而不是直接呼叫此函式,因為前者負責執行預處理和後處理步驟,而後者會默默地忽略它們。

PatchTSMixerForPrediction

class transformers.PatchTSMixerForPrediction

< >

( config: PatchTSMixerConfig )

引數

  • config (PatchTSMixerConfig) — 配置。

用於預測應用的 PatchTSMixer

forward

< >

( past_values: Tensor observed_mask: typing.Optional[torch.Tensor] = None future_values: typing.Optional[torch.Tensor] = None output_hidden_states: typing.Optional[bool] = False return_loss: bool = True return_dict: typing.Optional[bool] = None ) transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerForPredictionOutputtuple(torch.FloatTensor)

引數

  • past_values (torch.FloatTensor,形狀為 (batch_size, seq_length, num_input_channels)) — 時間序列的上下文值。對於預訓練任務,這表示用於預測被掩碼部分的輸入時間序列。對於預測任務,這表示歷史/過去時間序列值。類似地,對於分類或迴歸任務,它表示時間序列的相應上下文值。

    對於單變數時間序列,num_input_channels 維度應為 1。對於多變數時間序列,它大於 1。

  • observed_mask (torch.FloatTensor,形狀為 (batch_size, sequence_length, num_input_channels)可選) — 布林掩碼,指示哪些 past_values 被觀察到,哪些是缺失的。掩碼值選擇在 [0, 1] 中:

    • 1 表示**已觀察**到的值,
    • 0 表示**缺失**的值(即被零替換的 NaNs)。
  • future_values (torch.FloatTensor,形狀為用於預測的 (batch_size, target_len, num_input_channels),用於迴歸的 (batch_size, num_targets),或用於分類的 (batch_size,)可選):時間序列的目標值,用作模型的標籤。future_values 是 Transformer 在訓練期間需要學習輸出的內容,給定 past_values。請注意,預訓練任務不需要此項。

    對於預測任務,形狀為 (batch_size, target_len, num_input_channels)。即使我們只想透過設定 prediction_channel_indices 引數中的索引來預測特定通道,也要傳遞包含所有通道的目標資料,因為預測和目標的通道過濾將在損失計算之前手動應用。

  • output_hidden_states (bool可選,預設為 False) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 hidden_states
  • return_loss (bool可選) — 是否在 forward 呼叫中返回損失。
  • return_dict (bool可選) — 是否返回 ModelOutput 而不是普通元組。

返回

transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerForPredictionOutputtuple(torch.FloatTensor)

一個 transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerForPredictionOutput 或一個 torch.FloatTensor 元組(如果傳遞 return_dict=False 或當 config.return_dict=False 時),包含根據配置(PatchTSMixerConfig)和輸入而異的各種元素。

  • loss (*可選*,在提供 y 時返回,torch.FloatTensor,形狀為 ()) — 總損失。
  • prediction_outputs (torch.FloatTensor,形狀為 (batch_size, prediction_length, num_input_channels)) — 來自預測頭的預測輸出。
  • last_hidden_state (torch.FloatTensor,形狀為 (batch_size, num_input_channels, num_patches, d_model)) — 經過頭部之前的骨幹嵌入。
  • hidden_states (tuple(torch.FloatTensor)可選) — 模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。
  • loc (torch.FloatTensor可選,形狀為 (batch_size, 1, num_input_channels)) — 輸入平均值
  • scale (torch.FloatTensor可選,形狀為 (batch_size, 1, num_input_channels)) — 輸入標準差

PatchTSMixerForPrediction 的前向方法,覆蓋了 __call__ 特殊方法。

儘管前向傳播的實現需要在該函式中定義,但之後應該呼叫 Module 例項而不是直接呼叫此函式,因為前者負責執行預處理和後處理步驟,而後者會默默地忽略它們。

PatchTSMixerForTimeSeriesClassification

class transformers.PatchTSMixerForTimeSeriesClassification

< >

( config: PatchTSMixerConfig )

引數

  • config (PatchTSMixerConfig) — 配置。

用於分類應用的 PatchTSMixer

forward

< >

( past_values: Tensor target_values: typing.Optional[torch.Tensor] = None output_hidden_states: typing.Optional[bool] = False return_loss: bool = True return_dict: typing.Optional[bool] = None ) transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerForTimeSeriesClassificationOutputtuple(torch.FloatTensor)

引數

  • past_values (torch.FloatTensor,形狀為 (batch_size, seq_length, num_input_channels)) — 時間序列的上下文值。對於預訓練任務,這表示用於預測被掩碼部分的輸入時間序列。對於預測任務,這表示歷史/過去時間序列值。類似地,對於分類或迴歸任務,它表示時間序列的相應上下文值。

    對於單變數時間序列,num_input_channels 維度應為 1。對於多變數時間序列,它大於 1。

  • target_values (torch.FloatTensor,形狀為用於預測的 (batch_size, target_len, num_input_channels),用於迴歸的 (batch_size, num_targets),或用於分類的 (batch_size,)可選):時間序列的目標值,用作模型的標籤。target_values 是 Transformer 在訓練期間需要學習輸出的內容,給定 past_values。請注意,預訓練任務不需要此項。

    對於預測任務,形狀為 (batch_size, target_len, num_input_channels)。即使我們只想透過設定 prediction_channel_indices 引數中的索引來預測特定通道,也要傳遞包含所有通道的目標資料,因為預測和目標的通道過濾將在損失計算之前手動應用。

    對於分類任務,其形狀為 (batch_size,)

    對於迴歸任務,其形狀為 (batch_size, num_targets)

  • output_hidden_states (bool可選,預設為 False) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 hidden_states
  • return_loss (bool可選) — 是否在 forward 呼叫中返回損失。
  • return_dict (bool可選) — 是否返回 ModelOutput 而不是普通元組。

返回

transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerForTimeSeriesClassificationOutputtuple(torch.FloatTensor)

一個 transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerForTimeSeriesClassificationOutput 或一個 torch.FloatTensor 元組(如果傳遞 return_dict=False 或當 config.return_dict=False 時),包含根據配置(PatchTSMixerConfig)和輸入而異的各種元素。

  • loss (*可選*,在提供 y 時返回,torch.FloatTensor,形狀為 ()) — 總損失。
  • prediction_outputs (torch.FloatTensor,形狀為 (batch_size, num_labels)) — 來自分類頭的預測輸出。
  • last_hidden_state (torch.FloatTensor,形狀為 (batch_size, num_input_channels, num_patches, d_model)) — 經過頭部之前的骨幹嵌入。
  • hidden_states (tuple(torch.FloatTensor)可選) — 模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。

PatchTSMixerForTimeSeriesClassification 的前向方法,覆蓋了 __call__ 特殊方法。

儘管前向傳播的實現需要在該函式中定義,但之後應該呼叫 Module 例項而不是直接呼叫此函式,因為前者負責執行預處理和後處理步驟,而後者會默默地忽略它們。

PatchTSMixerForPretraining

class transformers.PatchTSMixerForPretraining

< >

( config: PatchTSMixerConfig )

引數

  • config (PatchTSMixerConfig) — 模型的配置類,包含模型的所有引數。使用配置檔案初始化不會載入與模型相關的權重,只加載配置。請檢視 from_pretrained() 方法以載入模型權重。

用於掩碼預訓練的 PatchTSMixer

此模型繼承自 PreTrainedModel。請檢視超類文件,瞭解庫為其所有模型實現的一般方法(例如下載或儲存、調整輸入嵌入大小、修剪頭部等)。

此模型也是 PyTorch torch.nn.Module 的子類。將其作為常規 PyTorch Module 使用,並參考 PyTorch 文件中所有與一般用法和行為相關的事項。

forward

< >

( past_values: Tensor observed_mask: typing.Optional[torch.Tensor] = None output_hidden_states: typing.Optional[bool] = False return_loss: bool = True return_dict: typing.Optional[bool] = None ) transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerForPreTrainingOutputtuple(torch.FloatTensor)

引數

  • past_values (torch.FloatTensor,形狀為 (batch_size, seq_length, num_input_channels)) — 時間序列的上下文值。對於預訓練任務,這表示用於預測被掩碼部分的輸入時間序列。對於預測任務,這表示歷史/過去時間序列值。類似地,對於分類或迴歸任務,它表示時間序列的相應上下文值。

    對於單變數時間序列,num_input_channels 維度應為 1。對於多變數時間序列,它大於 1。

  • observed_mask (torch.FloatTensor,形狀為 (batch_size, sequence_length, num_input_channels)可選) — 布林掩碼,指示哪些 past_values 被觀察到,哪些是缺失的。掩碼值選擇在 [0, 1] 中:

    • 1 表示**已觀察**到的值,
    • 0 表示**缺失**的值(即被零替換的 NaNs)。
  • output_hidden_states (bool可選,預設為 False) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 hidden_states
  • return_loss (bool可選) — 是否在 forward 呼叫中返回損失。
  • return_dict (bool可選) — 是否返回 ModelOutput 而不是普通元組。

返回

transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerForPreTrainingOutputtuple(torch.FloatTensor)

一個 transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerForPreTrainingOutput 或一個 torch.FloatTensor 元組(如果傳遞 return_dict=False 或當 config.return_dict=False 時),包含根據配置(PatchTSMixerConfig)和輸入而異的各種元素。

  • loss (*可選*,在提供 y 時返回,torch.FloatTensor,形狀為 ()) — 總損失
  • prediction_outputs (torch.FloatTensor,形狀為 (batch_size, num_input_channels, num_patches, patch_length)) — 來自預訓練頭的預測輸出。
  • last_hidden_state (torch.FloatTensor,形狀為 (batch_size, num_input_channels, num_patches, d_model)) — 經過頭部之前的骨幹嵌入。
  • hidden_states (tuple(torch.FloatTensor), 可選) — 模型每層的隱藏狀態。

PatchTSMixerForPretraining 的前向方法,覆蓋了 __call__ 特殊方法。

儘管前向傳播的實現需要在該函式中定義,但之後應該呼叫 Module 例項而不是直接呼叫此函式,因為前者負責執行預處理和後處理步驟,而後者會默默地忽略它們。

PatchTSMixerForRegression

class transformers.PatchTSMixerForRegression

< >

( config: PatchTSMixerConfig )

引數

  • config (PatchTSMixerConfig) — 模型的配置類,包含模型的所有引數。使用配置檔案初始化不會載入與模型相關的權重,只加載配置。請檢視 from_pretrained() 方法以載入模型權重。

用於迴歸應用的 PatchTSMixer

此模型繼承自 PreTrainedModel。請檢視超類文件,瞭解庫為其所有模型實現的一般方法(例如下載或儲存、調整輸入嵌入大小、修剪頭部等)。

此模型也是 PyTorch torch.nn.Module 的子類。將其作為常規 PyTorch Module 使用,並參考 PyTorch 文件中所有與一般用法和行為相關的事項。

forward

< >

( past_values: Tensor target_values: typing.Optional[torch.Tensor] = None output_hidden_states: typing.Optional[bool] = False return_loss: bool = True return_dict: typing.Optional[bool] = None ) transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerForRegressionOutputtuple(torch.FloatTensor)

引數

  • past_values (torch.FloatTensor,形狀為 (batch_size, seq_length, num_input_channels)) — 時間序列的上下文值。對於預訓練任務,這表示用於預測被掩碼部分的輸入時間序列。對於預測任務,這表示歷史/過去時間序列值。類似地,對於分類或迴歸任務,它表示時間序列的相應上下文值。

    對於單變數時間序列,num_input_channels 維度應為 1。對於多變數時間序列,它大於 1。

  • target_values (torch.FloatTensor,形狀為用於預測的 (batch_size, target_len, num_input_channels),用於迴歸的 (batch_size, num_targets),或用於分類的 (batch_size,)可選):時間序列的目標值,用作模型的標籤。target_values 是 Transformer 在訓練期間需要學習輸出的內容,給定 past_values。請注意,預訓練任務不需要此項。

    對於預測任務,形狀為 (batch_size, target_len, num_input_channels)。即使我們只想透過設定 prediction_channel_indices 引數中的索引來預測特定通道,也要傳遞包含所有通道的目標資料,因為預測和目標的通道過濾將在損失計算之前手動應用。

    對於分類任務,其形狀為 (batch_size,)

    對於迴歸任務,其形狀為 (batch_size, num_targets)

  • output_hidden_states (bool可選,預設為 False) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 hidden_states
  • return_loss (bool可選) — 是否在 forward 呼叫中返回損失。
  • return_dict (bool可選) — 是否返回 ModelOutput 而不是普通元組。

返回

transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerForRegressionOutputtuple(torch.FloatTensor)

一個 transformers.models.patchtsmixer.modeling_patchtsmixer.PatchTSMixerForRegressionOutput 或一個 torch.FloatTensor 元組(如果傳遞 return_dict=False 或當 config.return_dict=False 時),包含根據配置(PatchTSMixerConfig)和輸入而異的各種元素。

  • loss (*可選*,在提供 y 時返回,torch.FloatTensor,形狀為 ()) — 總損失。
  • regression_outputs (torch.FloatTensor,形狀為 (batch_size, num_targets)) — 來自迴歸頭的預測輸出。
  • last_hidden_state (torch.FloatTensor,形狀為 (batch_size, num_input_channels, num_patches, d_model)) — 經過頭部之前的骨幹嵌入。
  • hidden_states (tuple(torch.FloatTensor)可選) — 模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。

PatchTSMixerForRegression 的前向方法,覆蓋了 __call__ 特殊方法。

儘管前向傳播的實現需要在該函式中定義,但之後應該呼叫 Module 例項而不是直接呼叫此函式,因為前者負責執行預處理和後處理步驟,而後者會默默地忽略它們。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.