Transformers documentation
PatchTSMixer
このモデルは2023年6月14日にHF papersで公開され、2023年12月5日にHugging Face Transformersに貢献されました。
PatchTSMixer
概要
PatchTSMixerモデルは、Vijay Ekambaram、Arindam Jati、Nam Nguyen、Phanwadee Sinthong、Jayant Kalagnanam によって提案された TSMixer: Lightweight MLP-Mixer Model for Multivariate Time Series Forecasting に記載されています。
PatchTSMixerは、MLP-Mixerアーキテクチャに基づく軽量な時系列モデリング手法です。このHuggingFace実装では、PatchTSMixerの機能を提供し、パッチ、チャネル、隠れ特徴量間の軽量なミキシングを容易に行うことで、効果的な多変量時系列モデリングを支援します。また、単純なゲーティング付きアテンションから、より複雑な自己アテンションブロックまで、さまざまなアテンションメカニズムをサポートしており、必要に応じてカスタマイズできます。このモデルは事前学習が可能であり、予測、分類、回帰などのさまざまな下流タスクに使用できます。
論文の抄録は以下の通りです。
TSMixerは、パッチ化された時系列データにおける多変量予測と表現学習のために設計された、マルチレイヤーパーセプトロン(MLP)モジュールのみで構成される軽量なニューラルアーキテクチャです。当社のモデルは、コンピュータビジョン分野におけるMLP-Mixerモデルの成功に着想を得ています。Vision MLP-Mixerを時系列データに適用する際の課題を示し、精度を向上させるために実証されたコンポーネントを導入します。これには、階層性やチャネル間の相関といった時系列の特性を明示的にモデル化するために、MLP-Mixerのバックボーンにオンライン調整ヘッドを付加するという新しい設計パラダイムが含まれます。また、既存のパッチチャネルミキシング手法で共通の課題である、ノイジーなチャネル間の相互作用の処理や多様なデータセットへの汎化を効果的に扱うためのハイブリッドチャネルモデリング手法を提案します。さらに、バックボーンにシンプルなゲーティング付きアテンション機構を導入し、重要な特徴量を優先的に処理します。これらの軽量なコンポーネントを取り入れることで、シンプルなMLP構造の学習能力を大幅に強化し、計算リソースを最小限に抑えながら、複雑なTransformerモデルを上回る性能を実現します。加えて、TSMixerのモジュール化された設計により、教師あり学習とマスク付き自己教師あり学習の両方との互換性を確保しており、時系列のFoundation Modelsのための有望な構成要素となっています。TSMixerは、予測タスクにおいて最先端のMLPモデルおよびTransformerモデルを8〜60%という大幅な差で上回ります。また、メモリと実行時間の大幅な削減(2〜3倍)を達成しながら、最新の強力なベンチマークであるPatch-Transformerモデルをも1〜2%上回っています。
このモデルは、ajati、vijaye12、gsinthong、namctin、wmgifford、kashif によって提供されました。
使用例
以下のコードスニペットは、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)使用のコツ
このモデルは、時系列分類および時系列回帰にも使用できます。それぞれに対応するPatchTSMixerForTimeSeriesClassificationクラスとPatchTSMixerForRegressionクラスを参照してください。
リソース
- PatchTSMixerを詳しく解説したブログ記事はこちらで確認できます。また、このブログはGoogle Colabでも開くことができます。
PatchTSMixerConfig
クラス 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' )
パラメータ
- context_length (
int、任意、デフォルト値は 32) — 入力シーケンスのコンテキスト/履歴の長さです。 - patch_length (
int、任意、デフォルトは 8) — 入力シーケンスのパッチ長です。 - num_input_channels (
int、任意、デフォルトは1) — 入力チャネル数。 - patch_stride (
int, 省略可、デフォルトは 8) — 連続する 2 つの patch 間の重複を決定します。重複しない patch を得たい場合は、patch_length (またはそれ以上の値)に設定してください。 - num_parallel_samples (
int、省略可能、デフォルト値は 100) — 確率的予測のために並列で生成するサンプルの数です。 - d_model (
int、任意、デフォルトは8) — エンコーダ層とプーラ層のサイズ。 - expansion_factor (
int、任意、デフォルト値は 2) — MLP 内部で使用する拡張係数です。推奨される範囲は 2〜5 です。値が大きいほど、より複雑なモデルになります。 - num_layers (
int、任意、デフォルトは3) — Transformer デコーダーの隠れ層の数。 - dropout (
Union[float, int]、任意、デフォルトは0.2) — すべての dropout レイヤーの比率です。 - mode (
str、任意、デフォルトは"common_channel") — Mixer Mode。チャネルの処理方法を決定します。許可される値: “common_channel”、“mix_channel”。 “common_channel” モードでは、明示的なチャネル混合を行わず、Channel-independent modelling に従います。チャネル混合は、チャネル間で重みを共有することにより暗黙的に行われます。(推奨される第一の手法) “mix_channel” モードでは、patch と feature mixer に加えて、明示的なチャネル混合を行います。(チャネル間の相関をモデル化することが非常に重要な場合に推奨される手法) - gated_attn (
bool、任意、デフォルトはTrue) — Gated Attentionを有効にします。 - norm_mlp (
str、任意、デフォルトは"LayerNorm") — 正規化レイヤー (BatchNorm または LayerNorm)。 - self_attn (
bool、任意、デフォルトはFalse) — パッチ全体にわたって Tiny self attention を有効にします。gated attention を備えた Vanilla PatchTSMixer の出力が満足できるものでない場合に、これを有効にできます。これを有効にすると、パッチ間の明示的なペアワイズ attention とモデリングが行われます。 - self_attn_heads (
int、任意、デフォルトは 1) — セルフアテンションのヘッド数。self_attnがTrueに設定されている場合のみ有効です。 - use_positional_encoding (
bool、任意、デフォルトはFalse) — tiny self-attention レイヤーにおける位置埋め込みの使用を有効にします。self_attnがTrueに設定されている場合のみ動作します。 - positional_encoding_type (
str、任意、デフォルトは"sincos") — 位置エンコーディング。"random"と"sincos"のオプションがサポートされています。use_positional_encodingがTrueに設定されている場合のみ動作します。 - scaling (
stringまたはbool、省略可能、デフォルトは"std") —Noneの場合はスケーラーを適用せず、それ以外の場合は “mean” スケーラーまたは “std” スケーラーで入力ターゲットをスケーリングするかどうかを指定します。Trueの場合、スケーラーは “mean” に設定されます。 - loss (
string、任意、デフォルトは"mse") —distribution_outputヘッドに対応するモデルの損失関数です。パラメトリックな分布の場合は負の対数尤度("nll")、点推定の場合は平均二乗誤差です。 - init_std (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - norm_eps (
float、任意、デフォルト値は 1e-05) — 正規化の計算安定性を確保するために分母に加算される値。 - mask_type (
str、任意、デフォルトは"random") — Masked Pretraining モードで使用するマスキングの種類。許可される値は “random” と “forecast” です。Random マスキングでは、点がランダムにマスクされます。Forecast マスキングでは、末尾付近の点がマスクされます。 - random_mask_ratio (
float、任意、デフォルト値は 0.5)—mask_typeがrandomの場合に使用するマスキング比率です。値が大きいほど、より多くのトークンがマスクされます。 - num_forecast_mask_patches (
intまたはlist、任意、デフォルトは[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") — loss が “nll” の場合のモデルの分布出力ヘッドです。“student_t”、“normal”、または “negative_binomial” のいずれかになります。 - prediction_length (
int、任意、デフォルトは 16) — 予測タスクにおいて予測対象とするタイムステップの数。Forecast Horizon(予測期間)とも呼ばれます。 - 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 モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、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.configPatchTSMixerModel
クラス transformers.PatchTSMixerModel
< source >( config: PatchTSMixerConfigmask_input: bool = False )
パラメータ
- config (PatchTSMixerConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連付けられた重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
- mask_input (
bool、任意、デフォルトはFalse) —PatchTSMixerMaskingモジュールを使用して入力をマスクするかどうか。
時系列予測用の PatchTSMixer モデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( past_values: Tensorobserved_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = None**kwargs ) → PatchTSMixerModelOutput or tuple(torch.Tensor)
パラメータ
- past_values (
torch.Tensorの形状(batch_size, seq_length, num_input_channels)) — 時系列のコンテキスト値です。事前学習タスクでは、マスクされた部分を予測するための入力時系列を指します。予測タスクでは、履歴/過去の時系列値を指します。同様に、分類または回帰タスクでは、時系列の適切なコンテキスト値を指します。単変量時系列データの場合、
num_input_channels次元は1である必要があります。多変量時系列データの場合は、1より大きくなります。 - observed_mask (
torch.Tensor形状(batch_size, sequence_length, num_input_channels), 任意) — どのpast_valuesが観測され、どのが欠損しているかを示すブールマスク。マスクの値は[0, 1]:- 観測された値に対して1
- 欠損(ゼロに置き換えられたNaN)の値には0を指定します。
- output_hidden_states (
bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルのhidden_statesを参照してください。
戻り値
PatchTSMixerModelOutput または tuple(torch.Tensor)
PatchTSMixerModelOutput、またはtorch.Tensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(PatchTSMixerConfig)と入力に応じて、さまざまな要素で構成されます。
PatchTSMixerModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
- last_hidden_state (
torch.Tensor、形状(batch_size, num_channels, num_patches, d_model)) — モデルの最終層の出力における隠れ状態です。 - hidden_states (
tuple(torch.Tensor), オプション) — 各層の出力におけるモデルの隠れ状態。 - patch_input (
torch.Tensor、形状(batch_size, num_channels, num_patches, patch_length)) — モデルへのパッチ化された入力データ。 - mask (
torch.Tensor、形状(batch_size, num_channels, num_patches)、任意) — マスクされたパッチが True、それ以外が False である Bool Tensor。 - loc (
torch.Tensor、形状(batch_size, 1, num_channels)、任意) — 各チャネルごとのコンテキストウィンドウの平均値を指定します。revin が有効な場合、モデル外部での revin によるデノルマイズに使用されます。 - scale (
torch.Tensor、形状(batch_size, 1, num_channels)、任意) — 各チャネルごとのコンテキストウィンドウの標準偏差を指定します。revin が有効な場合、モデル外部での revin による非正規化に使用されます。
PatchTSMixerForPrediction
クラス transformers.PatchTSMixerForPrediction
< source >( config: PatchTSMixerConfig )
予測アプリケーション向けのPatchTSMixer。
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)
パラメータ
- past_values (
torch.Tensorの形状(batch_size, seq_length, num_input_channels)) — 時系列のコンテキスト値です。事前学習タスクでは、マスクされた部分を予測するための入力時系列を指します。予測タスクでは、履歴/過去の時系列値を指します。同様に、分類または回帰タスクでは、時系列の適切なコンテキスト値を指します。単変量時系列データの場合、
num_input_channels次元は1である必要があります。多変量時系列データの場合は、1より大きくなります。 - observed_mask (
torch.Tensor形状(batch_size, sequence_length, num_input_channels), 任意) — どのpast_valuesが観測され、どのが欠損しているかを示すブールマスク。マスクの値は[0, 1]:- 観測された値に対して1
- 欠損(ゼロに置き換えられたNaN)の値には0を指定します。
- future_values (
torch.Tensorof shape(batch_size, target_len, num_input_channels)for forecasting, —(batch_size, num_targets)for regression, or(batch_size,)for classification, optional): Target values of the time series, that serve as labels for the model. Thefuture_valuesis what the Transformer needs during training to learn to output, given thepast_values. Note that, this is NOT required for a pretraining task.予測タスクの場合、形状は
(batch_size, target_len, num_input_channels)になります。prediction_channel_indicesパラメータにインデックスを設定して特定のチャネルのみを予測したい場合でも、全チャネルを含むターゲットデータを渡してください。予測とターゲットの両方に対するチャネルのフィルタリングは、損失の計算前に手動で適用されるためです。 - output_hidden_states (
bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルのhidden_statesを参照してください。 - return_loss (
bool, 省略可) —forward呼び出しで損失を返すかどうか。
戻り値
PatchTSMixerForPredictionOutput または tuple(torch.Tensor)
PatchTSMixerForPredictionOutput、またはtorch.Tensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。構成(PatchTSMixerConfig)と入力に応じて、さまざまな要素で構成されます。
PatchTSMixerForPrediction の forward メソッドは、__call__ という特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
- loss (
*optional*、yが提供された場合に返されます、torch.Tensor、形状()) — 総損失。 - prediction_outputs (
torch.Tensor、形状(batch_size, prediction_length, num_input_channels)) — 予測ヘッドからの予測出力。 - last_hidden_state (
torch.Tensor、形状(batch_size, num_input_channels, num_patches, d_model)) — ヘッドを通過する前のバックボーン埋め込みです。 - hidden_states (
tuple(torch.Tensor), オプション) — 各層の出力におけるモデルの隠れ状態と、任意の初期埋め込み出力。 - loc (
torch.Tensor、optional、形状(batch_size, 1, num_input_channels)) — 入力平均 - scale (
torch.Tensor、optional、形状(batch_size, 1, num_input_channels)) — 入力標準偏差
PatchTSMixerForTimeSeriesClassification
class transformers.PatchTSMixerForTimeSeriesClassification
< source >( config: PatchTSMixerConfig )
分類アプリケーション向けのPatchTSMixer。
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)
パラメータ
- past_values (
torch.Tensorの形状(batch_size, seq_length, num_input_channels)) — 時系列のコンテキスト値です。事前学習タスクでは、マスクされた部分を予測するための入力時系列を指します。予測タスクでは、履歴/過去の時系列値を指します。同様に、分類または回帰タスクでは、時系列の適切なコンテキスト値を指します。単変量時系列データの場合、
num_input_channels次元は1である必要があります。多変量時系列データの場合は、1より大きくなります。 - target_values (
torch.Tensorof shape(batch_size, target_len, num_input_channels)for forecasting, —(batch_size, num_targets)for regression, or(batch_size,)for classification, optional): Target values of the time series, that serve as labels for the model. Thetarget_valuesis what the Transformer needs during training to learn to output, given thepast_values. Note that, this is NOT required for a pretraining task.予測タスクの場合、形状は
(batch_size, target_len, num_input_channels)になります。prediction_channel_indicesパラメータにインデックスを設定して特定のチャネルのみを予測したい場合でも、全チャネルを含むターゲットデータを渡してください。予測とターゲットの両方に対するチャネルのフィルタリングは、損失の計算前に手動で適用されるためです。分類タスクの場合、その形状は
(batch_size,)です。回帰タスクの場合、その形状は
(batch_size, num_targets)です。 - output_hidden_states (
bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルのhidden_statesを参照してください。 - return_loss (
bool, 省略可) —forward呼び出しで損失を返すかどうかを指定します。
戻り値
PatchTSMixerForTimeSeriesClassificationOutput または tuple(torch.Tensor)
PatchTSMixerForTimeSeriesClassificationOutput、またはtorch.Tensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。構成(PatchTSMixerConfig)や入力に応じて、さまざまな要素で構成されます。
PatchTSMixerForTimeSeriesClassificationのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
- loss (
*optional*、yが提供された場合に返されます、torch.Tensor、形状()) — 総損失。 - prediction_outputs (
torch.Tensor、形状(batch_size, num_labels)) — 分類ヘッドからの予測出力。 - last_hidden_state (
torch.Tensor、形状(batch_size, num_input_channels, num_patches, d_model)) — ヘッドを通過する前のバックボーン埋め込みです。 - hidden_states (
tuple(torch.Tensor), オプション) — 各層の出力におけるモデルの隠れ状態と、任意の初期埋め込み出力。
PatchTSMixerForPretraining
クラス transformers.PatchTSMixerForPretraining
< source >( config: PatchTSMixerConfig )
パラメータ
- config (PatchTSMixerConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連付けられた重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
PatchTSMixerによるマスク事前学習。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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)
パラメータ
- past_values (
torch.Tensorの形状(batch_size, seq_length, num_input_channels)) — 時系列のコンテキスト値です。事前学習タスクでは、マスクされた部分を予測するための入力時系列を指します。予測タスクでは、履歴/過去の時系列値を指します。同様に、分類または回帰タスクでは、時系列の適切なコンテキスト値を指します。単変量時系列データの場合、
num_input_channels次元は1である必要があります。多変量時系列データの場合は、1より大きくなります。 - observed_mask (
torch.Tensor形状(batch_size, sequence_length, num_input_channels), 任意) — どのpast_valuesが観測され、どのが欠損しているかを示すブールマスク。マスクの値は[0, 1]:- 観測された値に対して1
- 欠損(ゼロに置き換えられたNaN)の値には0を指定します。
- output_hidden_states (
bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルのhidden_statesを参照してください。 - return_loss (
bool, 省略可) —forward呼び出しで損失を返すかどうか。
戻り値
PatchTSMixerForPreTrainingOutput または tuple(torch.Tensor)
PatchTSMixerForPreTrainingOutput、またはtorch.Tensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(PatchTSMixerConfig)と入力に応じて、さまざまな要素で構成されます。
PatchTSMixerForPretraining の forward メソッドは、__call__ という特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
- loss (
*optional*、yが提供された場合に返されます、torch.Tensor、形状()) — 総損失 - prediction_outputs (
torch.Tensor、形状(batch_size, num_input_channels, num_patches, patch_length)) — pretrain headからの予測出力。 - last_hidden_state (
torch.Tensor、形状(batch_size, num_input_channels, num_patches, d_model)) — ヘッドを通過する前のバックボーン埋め込みです。 - hidden_states (
tuple(torch.Tensor), オプション) — 各層の出力におけるモデルの隠れ状態。
PatchTSMixerForRegression
クラス transformers.PatchTSMixerForRegression
< source >( config: PatchTSMixerConfig )
パラメータ
- config (PatchTSMixerConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連付けられた重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
回帰アプリケーション向けのPatchTSMixer。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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)
パラメータ
- past_values (
torch.Tensorの形状(batch_size, seq_length, num_input_channels)) — 時系列のコンテキスト値です。事前学習タスクでは、マスクされた部分を予測するための入力時系列を指します。予測タスクでは、履歴/過去の時系列値を指します。同様に、分類または回帰タスクでは、時系列の適切なコンテキスト値を指します。単変量時系列データの場合、
num_input_channels次元は1である必要があります。多変量時系列データの場合は、1より大きくなります。 - target_values (
torch.Tensorof shape(batch_size, target_len, num_input_channels)for forecasting, —(batch_size, num_targets)for regression, or(batch_size,)for classification, optional): Target values of the time series, that serve as labels for the model. Thetarget_valuesis what the Transformer needs during training to learn to output, given thepast_values. Note that, this is NOT required for a pretraining task.予測タスクの場合、形状は
(batch_size, target_len, num_input_channels)になります。prediction_channel_indicesパラメータにインデックスを設定して特定のチャネルのみを予測したい場合でも、全チャネルを含むターゲットデータを渡してください。予測とターゲットの両方に対するチャネルのフィルタリングは、損失の計算前に手動で適用されるためです。分類タスクの場合、その形状は
(batch_size,)です。回帰タスクの場合、その形状は
(batch_size, num_targets)です。 - output_hidden_states (
bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルのhidden_statesを参照してください。 - return_loss (
bool, 省略可) —forward呼び出しで損失を返すかどうかを指定します。
戻り値
PatchTSMixerForRegressionOutput または tuple(torch.Tensor)
PatchTSMixerForRegressionOutput、またはtorch.Tensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。構成(PatchTSMixerConfig)と入力に応じて、さまざまな要素で構成されます。
PatchTSMixerForRegressionのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
- loss (
*optional*、yが提供された場合に返されます、torch.Tensor、形状()) — 総損失。 - regression_outputs (
torch.Tensor、形状(batch_size, num_targets)) — 回帰ヘッドからの予測出力。 - last_hidden_state (
torch.Tensor、形状(batch_size, num_input_channels, num_patches, d_model)) — ヘッドを通過する前のバックボーン埋め込みです。 - hidden_states (
tuple(torch.Tensor), オプション) — 各層の出力におけるモデルの隠れ状態と、任意の初期埋め込み出力。