Transformers documentation
PatchTST
このモデルは2022年11月27日にHF papersで公開され、2023年11月13日にHugging Face Transformersに貢献されました。
PatchTST
概要
PatchTSTモデルは、Yuqi Nie、Nam H. Nguyen、Phanwadee Sinthong、Jayant Kalagnanam によって提案された A Time Series is Worth 64 Words: Long-term Forecasting with Transformers に記載されています。
大まかに言うと、このモデルは時系列を指定されたサイズのパッチにベクトル化し、得られたベクトルのシーケンスをTransformerでエンコードします。その後、適切なヘッドを通じて予測長の予測値を出力します。モデルの構造は次の図に示されています。
論文の抄録は以下の通りです。
多変量時系列予測および自己教師あり表現学習のための、Transformerベースのモデルの効率的な設計を提案します。本手法は2つの主要なコンポーネントに基づいています。(i) 時系列をサブシリーズレベルのパッチに分割し、それらをTransformerの入力トークンとして用いること。(ii) チャネル独立性。各チャネルは単一の単変量時系列を含み、すべてのシリーズ間で同じ埋め込みとTransformerの重みを共有します。パッチ化の設計には3つの利点があります。埋め込みに局所的な意味情報が保持されること、同じルックバックウィンドウに対してアテンションマップの計算量とメモリ使用量が二次的に削減されること、モデルがより長い履歴に注意を払えることです。チャネル独立なパッチ時系列Transformer(PatchTST)は、SOTAのTransformerベースのモデルと比較して、長期予測の精度を大幅に向上させます。また、本モデルを自己教師あり事前学習タスクに適用し、優れたファインチューニング性能を実現しました。これは大規模データセットにおける教師あり学習を上回ります。1つのデータセットでマスク事前学習された表現を他のデータセットに移行させることも、SOTAの予測精度をもたらします。
このモデルは、namctin、gsinthong、diepi、vijaye12、wmgifford、および kashif によって提供されました。元のコードはこちらで確認できます。
使用のコツ
このモデルは、時系列分類や時系列回帰にも使用できます。それぞれに対応するPatchTSTForClassificationクラスとPatchTSTForRegressionクラスを参照してください。
リソース
- PatchTSTを詳しく解説したブログ記事はこちらで確認できます。このブログはGoogle Colabでも開くことができます。
PatchTSTConfig
クラス 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 )
パラメータ
- num_input_channels (
int、任意、デフォルトは1) — 入力チャネル数。 - context_length (
int、任意、デフォルト値は 32) — 入力シーケンスのコンテキスト長です。 - distribution_output (
str、任意、デフォルトは"student_t") — loss が “nll” の場合のモデルの分布出力ヘッドです。“student_t”、“normal”、または “negative_binomial” のいずれかを指定できます。 - loss (
str、任意、デフォルトは"mse") —distribution_outputヘッドに対応するモデルの損失関数です。パラメトリックな分布の場合は負の対数尤度("nll")、点推定の場合は平均二乗誤差です。 - patch_length (
int、任意、デフォルトは 1) — パッチ化プロセスのパッチ長を定義します。 - patch_stride (
int, 省略可能、デフォルトは 1) — パッチ化プロセスのストライドを定義します。 - num_hidden_layers (
int、任意、デフォルトは3) — Transformer デコーダーの隠れ層の数。 - d_model (
int、省略可、デフォルトは128) — エンコーダ層とプーラ層のサイズ。 - num_attention_heads (
int、任意、デフォルトは 4) — Transformer エンコーダーの各アテンション層におけるアテンションヘッドの数。 - share_embedding (
bool、任意、デフォルトはTrue) — 入力埋め込みをすべてのチャネル間で共有します。 - channel_attention (
bool、省略可、デフォルトはFalse) — Transformer内でチャネルアテンションブロックを有効にし、各チャネルが互いにアテンションを行えるようにします。 - ffn_dim (
int、任意、デフォルト値は 512) — Transformer エンコーダーにおける「中間」層(feed-forward 層と呼ばれることが多い)の次元数。 - norm_type (
str, 任意、デフォルトは"batchnorm") — 各 Transformer レイヤーでの正規化。"batchnorm"または"layernorm"を指定できます。 - norm_eps (
float、任意、デフォルト値は 1e-05) — 正規化の計算安定性を確保するために分母に加算される値。 - attention_dropout (
Union[float, int]、任意、デフォルトは0.0) — アテンション確率のドロップアウト率です。 - positional_dropout (
float、任意、デフォルト値は 0.0) — 位置埋め込み層における dropout の確率です。 - path_dropout (
float、任意、デフォルト値は 0.0) — 残差ブロックにおける dropout パスです。 - ff_dropout (
float, 任意、デフォルト値は 0.0) — フィードフォワードネットワークの2つの層の間で使用される dropout の確率です。 - bias (
bool、任意、デフォルトはTrue) — フィードフォワードネットワークにバイアス項を追加するかどうか。 - activation_function (
str、任意、デフォルトは"gelu") — Transformer における非線形活性化関数(文字列)。"gelu"と"relu"がサポートされています。 - pre_norm (
bool、任意、デフォルトはTrue) —Trueに設定されている場合、self-attention の前に Normalization が適用されます。それ以外の場合、residual block の後に Normalization が適用されます。 - positional_encoding_type (
str、任意、デフォルトは"sincos") — 位置エンコーディング。オプションとして"random"と"sincos"がサポートされています。 - use_cls_token (
bool、任意、デフォルトはFalse) — cls トークンを使用するかどうか。 - init_std (
float、任意、デフォルトは 0.02) — 切り詰め正規分布による重みの初期化における標準偏差です。 - share_projection (
bool、任意、デフォルトはTrue) — 予測ヘッド内で異なるチャネル間で投影層を共有します。 - scaling (
Union、任意、デフォルトは"std") —Noneの場合はスケーラーを適用せず、それ以外の場合は “mean” スケーラーまたは “std” スケーラーで入力ターゲットをスケーリングするかどうかを指定します。Trueの場合、スケーラーは “mean” に設定されます。 - do_mask_input (
bool、任意) — 事前学習中にマスキングを適用します。 - mask_type (
str、任意、デフォルトは"random") — マスキングの種類。現在サポートされているのは"random"と"forecast"のみです。 - random_mask_ratio (
float、任意、デフォルト値は 0.5)— ランダム事前学習中に、入力データをマスクするために適用されるマスク比率。 - num_forecast_mask_patches (
intまたはlist、任意、デフォルトは[2]) — 各バッチサンプルの末尾でマスクされるパッチの数です。整数を指定した場合、バッチ内のすべてのサンプルで同じ数のパッチがマスクされます。リストを指定した場合、バッチ内のサンプルはリストで定義された数値に基づいてランダムにマスクされます。この引数は、予測事前学習でのみ使用されます。 - channel_consistent_masking (
bool、任意、デフォルトはFalse) — channel consistent masking が True の場合、すべてのチャネルに同じマスキングパターンが適用されます。 - unmasked_channel_indices (
list, 任意) — 事前学習中にマスクされないチャネルのインデックス。リストの値は 1 からnum_input_channelsまでの数値です。 - mask_value (
int、任意、デフォルトは 0) — マスクされたパッチ内の値はmask_valueで埋められます。 - pooling_type (
str、任意、デフォルトは"mean") — 埋め込みのプーリング方法。"mean"、"max"、Noneがサポートされています。 - head_dropout (
float、省略可、デフォルト値は 0.0) — head 用の dropout 確率です。 - prediction_length (
int, 任意、デフォルトは 24) — モデルが出力する予測期間です。 - num_targets (
int、任意、デフォルトは 1) — 回帰タスクおよび分類タスクのターゲット数。分類タスクの場合、クラス数を指します。 - output_range (
list、任意) — 回帰タスクの出力範囲です。出力値の範囲を設定することで、モデルがその範囲内の値を出力するように強制できます。 - num_parallel_samples (
int、省略可能、デフォルト値は 100) — 確率的予測のために並列で生成されるサンプルの数です。
これは PatchTSTModel の設定を保存するための設定クラスです。指定された引数に基づいて Patchtst モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、ibm-granite/granite-timeseries-patchtst と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
>>> 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
クラス transformers.PatchTSTModel
< source >( config: PatchTSTConfig )
パラメータ
- config (PatchTSTConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
特定のヘッドを付加せず、生のhidden-statesを出力する素のPatchtstモデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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 )
パラメータ
- past_values (
torch.Tensor、形状(bs, sequence_length, num_input_channels)、必須) — モデルへの入力シーケンス - past_observed_mask (
torch.BoolTensor形状(batch_size, sequence_length, num_input_channels), 省略可) — どのpast_valuesが観測され、どの値が欠損していたかを示すブールマスク。マスクの値は[0, 1]:- 観測された値に対して1
- 欠損(ゼロに置き換えられたNaN)の値には0を指定します。
- future_values (
torch.BoolTensor、形状(batch_size, prediction_length, num_input_channels)、任意) —past_valuesに関連付けられる将来のターゲット値 - output_hidden_states (
bool, 任意) — すべての層の隠れ状態を返すかどうか - output_attentions (
bool, 任意) — すべてのレイヤーの出力アテンションを返すかどうか - return_dict (
bool, 任意) —ModelOutputを返すか、プレーンなタプルを返すかを指定します。
例:
>>> 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
クラス transformers.PatchTSTForPrediction
< source >( config: PatchTSTConfig )
パラメータ
- config (PatchTSTConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
予測用の PatchTST モデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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 )
パラメータ
- past_values (
torch.Tensor、形状(bs, sequence_length, num_input_channels)、必須) — モデルへの入力シーケンス - past_observed_mask (
torch.BoolTensor形状(batch_size, sequence_length, num_input_channels), 省略可) — どのpast_valuesが観測され、どの値が欠損していたかを示すブールマスク。マスクの値は[0, 1]:- 観測された値に対して1
- 欠損(ゼロに置き換えられたNaN)の値には0を指定します。
- future_values (
torch.Tensor、形状(bs, forecast_len, num_input_channels)、任意) —past_valuesに関連付けられる将来のターゲット値 - output_hidden_states (
bool, 任意) — すべての層の隠れ状態を返すかどうか - output_attentions (
bool, 任意) — すべてのレイヤーの出力アテンションを返すかどうか - return_dict (
bool, 任意) —ModelOutputを返すか、プレーンなタプルを返すかを指定します。
例:
>>> 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
クラス transformers.PatchTSTForClassification
< source >( config: PatchTSTConfig )
パラメータ
- config (PatchTSTConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
分類用の PatchTST モデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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)
パラメータ
- past_values (
torch.Tensor、形状(bs, sequence_length, num_input_channels)、必須) — モデルへの入力シーケンス - target_values (
torch.Tensor, 任意) —past_valuesに関連付けられたラベル - past_observed_mask (
torch.BoolTensor形状(batch_size, sequence_length, num_input_channels), 省略可) — どのpast_valuesが観測され、どの値が欠損していたかを示すブールマスク。マスクの値は[0, 1]:- 観測された値に対して1
- 欠損(ゼロに置き換えられたNaN)の値には0を指定します。
- output_hidden_states (
bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルのhidden_statesを参照してください。 - output_attentions (
bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルのattentionsを参照してください。 - return_dict (
bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。
戻り値
PatchTSTForClassificationOutput または tuple(torch.Tensor)
PatchTSTForClassificationOutput、またはtorch.Tensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。構成要素は、設定(PatchTSTConfig)と入力に応じて異なります。
PatchTSTForClassificationのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
*optional*,labelsが提供された場合に返されます,torch.Tensor、形状(1,)) — マスクド言語モデリング損失と次のシーケンス予測(分類)損失の合計として計算される総損失。prediction_logits (
torch.Tensor、形状(batch_size, num_targets)) — PatchTST モデリングヘッドの予測スコア(SoftMax 適用前のスコア)。hidden_states (
tuple[torch.Tensor]、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます) —torch.Tensorのタプル(モデルに埋め込み層がある場合は埋め込みの出力用 1 つ、各層の出力用 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple[torch.Tensor]、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.Tensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
例:
>>> 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
クラス transformers.PatchTSTForPretraining
< source >( config: PatchTSTConfig )
パラメータ
- config (PatchTSTConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
事前学習モデル用の PatchTST。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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 )
パラメータ
- past_values (
torch.Tensor、形状(bs, sequence_length, num_input_channels)、必須) — モデルへの入力シーケンス - past_observed_mask (
torch.BoolTensor形状(batch_size, sequence_length, num_input_channels), 省略可) — どのpast_valuesが観測され、どの値が欠損していたかを示すブールマスク。マスクの値は[0, 1]:- 観測された値に対して1
- 欠損(ゼロに置き換えられたNaN)の値には0を指定します。
- output_hidden_states (
bool, 任意) — すべての層の隠れ状態を返すかどうか - output_attentions (
bool, 任意) — すべてのレイヤーの出力アテンションを返すかどうか - return_dict (
bool, 任意) — プレーンなタプルではなくModelOutputを返すかどうか。
例:
>>> 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
クラス transformers.PatchTSTForRegression
< source >( config: PatchTSTConfig )
パラメータ
- config (PatchTSTConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
回帰用の PatchTST モデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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)
パラメータ
- past_values (
torch.Tensor、形状(bs, sequence_length, num_input_channels)、必須) — モデルへの入力シーケンス - target_values (
torch.Tensor、shape(bs, num_input_channels)) —past_valuesに関連付けられるターゲット値 - past_observed_mask (
torch.BoolTensorの形状(batch_size, sequence_length, num_input_channels), 、任意) — が観測されたか欠損しているかを示すブールマスク。past_valuesのマスク値は[0, 1]:- 観測された値に対して1
- 欠損(ゼロに置き換えられたNaN)の値は0です。
ModelOutputを返すか、プレーンなタプルを返すかを指定します。
- output_hidden_states (
bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルのhidden_statesを参照してください。 - output_attentions (
bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルのattentionsを参照してください。 - return_dict (
bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。
戻り値
PatchTSTForRegressionOutput または tuple(torch.Tensor)
PatchTSTForRegressionOutput、またはtorch.Tensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(PatchTSTConfig)と入力に応じて、さまざまな要素で構成されます。
PatchTSTForRegressionのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
*optional*,labelsが提供された場合に返されます,torch.Tensor、形状(1,)) — MSE ロス。regression_outputs (
torch.Tensor、形状(batch_size, num_targets)) — 時系列モデリングヘッドの回帰出力です。hidden_states (
tuple[torch.Tensor]、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます) —torch.Tensorのタプル(モデルに埋め込み層がある場合は埋め込みの出力用 1 つ、各層の出力用 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple[torch.Tensor]、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.Tensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
例:
>>> 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