Transformers documentation

PatchTST

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

نُشر هذا النموذج في أوراق HF في 27 نوفمبر 2022، وأُضيف إلى مكتبة Hugging Face Transformers في 13 نوفمبر 2023.

PatchTST

نظرة عامة

قُدِّم نموذج PatchTST في A Time Series is Worth 64 Words: Long-term Forecasting with Transformers من قِبل Yuqi Nie وNam H. Nguyen وPhanwadee Sinthong وJayant Kalagnanam.

على مستوى عالٍ، يقوم النموذج بتحويل السلاسل الزمنية إلى متجهات على شكل رقعات بحجم محدد، ثم يرمّز التسلسل الناتج من المتجهات عبر نموذج Transformer، الذي بدوره يُخرج توقعات بطول التنبؤ المطلوب عبر رأس مناسب. يُوضّح النموذج في الشكل التالي:

model

المستخلص من الورقة البحثية هو كالتالي:

نقترح تصميمًا فعّالًا لنماذج قائمة على Transformer للتنبؤ بسلاسل زمنية متعددة المتغيرات وتعلم التمثيل الذاتي الإشراف. يعتمد هذا التصميم على مكوّنين رئيسيين: (أ) تقسيم السلاسل الزمنية إلى رقع على مستوى السلاسل الفرعية، والتي تُستخدم كرموز إدخال لـ Transformer؛ (ب) استقلالية القنوات، حيث تحتوي كل قناة على سلسلة زمنية أحادية المتغير واحدة، وتشارك نفس التضمين وأوزان Transformer عبر جميع السلاسل. يأتي تصميم الرقع بفائدة ثلاثية: إذ يُحافظ على المعلومات الدلالية المحلية في التضمين؛ وتُقلَّل حسابات خرائط الانتباه واستهلاك الذاكرة بشكل تربيعي عند استخدام نافذة نظر خلفي متساوية؛ كما يمكن للنموذج الانتباه إلى تاريخ أطول. يمكن لنموذج Transformer للزمن المستمر المستقل للقنوات القائم على الرقع (PatchTST) تحسين دقة التنبؤ طويل المدى بشكل ملحوظ مقارنةً بنماذج Transformer القائمة على أحدث التقنيات. كما نطبق نموذجنا على مهام ما قبل التدريب الذاتي الإشراف، ونحقق أداءً ممتازًا في الضبط الدقيق يتفوق على التدريب المُشرَف على مجموعات البيانات الكبيرة. كما يؤدي نقل التمثيل المُقنَّع المُدرَّب مسبقًا من مجموعة بيانات إلى أخرى إلى تحقيق دقة تنبؤ بأحدث التقنيات.

تمت مساهمة هذا النموذج من قِبل namctin وgsinthong وdiepi وvijaye12 وwmgifford وkashif. يمكن العثور على الكود الأصلي هنا.

نصائح للاستخدام

يمكن أيضًا استخدام النموذج لتصنيف السلاسل الزمنية والانحدار على السلاسل الزمنية. راجع فئتي PatchTSTForClassification وPatchTSTForRegression المقابلة لذلك.

الموارد

  • يمكن العثور على منشور مدونة يشرح PatchTST بالتفصيل هنا. كما يمكن فتح المدونة في Google Colab.

PatchTSTConfig

فئة transformers.PatchTSTConfig

< >

( 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") — رأس توزيع الإصدار للنموذج عندما تكون الخسارة “nll”. يمكن أن تكون “student_t” أو “normal” أو “negative_binomial”.
  • loss (str، اختياري، القيمة الافتراضية "mse") — دالة الخسارة للنموذج المقابلة لرأس distribution_output. بالنسبة للتوزيعات البارامترية تكون السالب من الاحتمالية اللوغاريتمية ("nll")، وبالنسبة لتقديرات النقاط تكون متوسط مربع الخطأ.
  • patch_length (int، اختياري، القيمة الافتراضية 1) — تحديد طول الباتش (patch) في عملية التقطيع (patchification).
  • patch_stride (int، اختياري، القيمة الافتراضية 1) — تحدد خطوة عملية التقطيع (patchification).
  • 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.
  • norm_type (str ، اختياري، القيمة الافتراضية "batchnorm") — التطبيع في كل طبقة من طبقات Transformers. يمكن أن تكون "batchnorm" أو "layernorm".
  • norm_eps (float، اختياري، القيمة الافتراضية 1e-05) — قيمة تُضاف إلى المقام لضمان الاستقرار العددي لعملية التطبيع.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه.
  • positional_dropout (float، اختياري، القيمة الافتراضية 0.0) — احتمال الإسقاط (dropout) في طبقة التضمين الموضعي.
  • path_dropout (float، اختياري، القيمة الافتراضية 0.0) — مسار الإسقاط (dropout) في الكتلة المتبقية (residual block).
  • ff_dropout (float، اختياري، القيمة الافتراضية 0.0) — احتمال الإسقاط (Dropout) المستخدم بين الطبقتين في الشبكات الأمامية (Feed-forward).
  • bias (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إضافة انحياز في الشبكات الأمامية.
  • activation_function (str، اختياري، القيمة الافتراضية "gelu") — دالة التنشيط غير الخطية (نص) في Transformer. يتم دعم "gelu" و"relu".
  • pre_norm (bool، اختياري، القيمة الافتراضية True) — يتم تطبيق التطبيع قبل الانتباه الذاتي إذا كانت قيمة pre_norm هي True. وإلا، يتم تطبيق التطبيع بعد كتلة البقايا.
  • 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") — ما إذا كان سيتم توسيع الأهداف المدخلة عبر مُوسِّع “mean” أو مُوسِّع “std” أو بدون مُوسِّع إذا كانت None. إذا كانت True، يتم تعيين المُوسِّع إلى “mean”.
  • do_mask_input (bool، اختياري) — تطبيق الإخفاء (Masking) أثناء التدريب المسبق.
  • mask_type (str، اختياري، القيمة الافتراضية "random") — نوع الإخفاء. حاليًا، يُدعم "random" و"forecast" فقط.
  • random_mask_ratio (float، اختياري، القيمة الافتراضية 0.5) — نسبة الإخفاء (Masking) المطبّقة لإخفاء بيانات الإدخال أثناء التدريب المسبق العشوائي.
  • num_forecast_mask_patches (int أو list، اختياري، القيمة الافتراضية [2]) — عدد البقع التي سيتم إخفاؤها في نهاية كل عينة من الدفعة. إذا كانت قيمة عددية صحيحة، فستتمتع جميع العينات في الدفعة بنفس عدد البقع المخفية. أما إذا كانت قائمة، فسيتم إخفاء البقع في عينات الدفعة عشوائياً وفقاً للأعداد المحددة في القائمة. يُستخدم هذا الحجة فقط للتدريب المسبق للتنبؤ.
  • channel_consistent_masking (bool، اختياري، القيمة الافتراضية False) — إذا كانت قيمة channel consistent masking هي True، فستتبع جميع القنوات نفس نمط الإخفاء (masking).
  • 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) — احتمالية إسقاط (dropout) للرؤوس.
  • prediction_length (int، اختياري، القيمة الافتراضية 24) — أفق التنبؤ الذي سيُخرجه النموذج.
  • num_targets (int، اختياري، القيمة الافتراضية 1) — عدد الأهداف لمهام الانحدار والتصنيف. في حالة التصنيف، يمثل عدد الفئات.
  • output_range (list، اختياري) — نطاق الإخراج لمهمة الانحدار. يمكن ضبط نطاق قيم الإخراج لفرض إنتاج النموذج لقيم ضمن نطاق محدد.
  • num_parallel_samples (int، اختياري، القيمة الافتراضية 100) — عدد العينات التي يتم توليدها بالتوازي للتنبؤ الاحتمالي.

هذه فئة الإعدادات (Configuration) المخزنة لإعدادات نموذج 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.config

PatchTSTModel

فئة transformers.PatchTSTModel

< >

( config: PatchTSTConfig )

المعاملات

  • config (PatchTSTConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج Patchtst الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( 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 للقيم التي تم ملاحظتها،
    • 0 للقيم التي تكون مفقودة (أي قيم NaN التي تم استبدالها بالأصفار).
  • future_values (torch.BoolTensor من الشكل (batch_size, prediction_length, num_input_channels)، اختياري) — قيم الأهداف المستقبلية المرتبطة بـpast_values
  • output_hidden_states (bool, اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات أم لا
  • output_attentions (bool, اختياري) — ما إذا كان يجب إرجاع انتباه المخرجات لجميع الطبقات أم لا
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

أمثلة:

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

PatchTSTForPrediction

فئة transformers.PatchTSTForPrediction

< >

( config: PatchTSTConfig )

المعاملات

  • config (PatchTSTConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج PatchTST للتنبؤ.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( 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 للقيم التي تم ملاحظتها،
    • 0 للقيم التي تكون مفقودة (أي قيم NaN التي تم استبدالها بالأصفار).
  • future_values (torch.Tensor من الشكل (bs, forecast_len, num_input_channels)، اختياري) — قيم الأهداف المستقبلية المرتبطة بـpast_values
  • output_hidden_states (bool, اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات أم لا
  • output_attentions (bool, اختياري) — ما إذا كان يجب إرجاع انتباه المخرجات لجميع الطبقات أم لا
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

أمثلة:

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

PatchTSTForClassification

فئة transformers.PatchTSTForClassification

< >

( config: PatchTSTConfig )

المعاملات

  • config (PatchTSTConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج PatchTST للتصنيف.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( 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 للقيم التي تم ملاحظتها،
    • 0 للقيم التي تكون مفقودة (أي قيم NaN التي تم استبدالها بالأصفار).
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

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]، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (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_logits

PatchTSTForPretraining

فئة transformers.PatchTSTForPretraining

< >

( config: PatchTSTConfig )

المعاملات

  • config (PatchTSTConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج PatchTST للتدريب المسبق.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( 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 للقيم التي تم ملاحظتها،
    • 0 للقيم التي تكون مفقودة (أي قيم NaN التي تم استبدالها بالأصفار).
  • output_hidden_states (bool, اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات أم لا
  • output_attentions (bool, اختياري) — ما إذا كان يجب إرجاع انتباه المخرجات لجميع الطبقات أم لا
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

أمثلة:

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

< >

( config: PatchTSTConfig )

المعاملات

  • config (PatchTSTConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج PatchTST للانحدار.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( 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 من الشكل (bs, num_input_channels)) — القيم المستهدفة المرتبطة بـ past_values
  • past_observed_mask (torch.BoolTensor بشكل (batch_size, sequence_length, num_input_channels), اختياري) — قناع منطقي لتحديد أي past_values تمت ملاحظتها وأيها مفقودة. قيم القناع المختارة من [0, 1]:
    • 1 للقيم التي تم ملاحظتها،
    • 0 للقيم التي تكون مفقودة (أي قيم NaN التي تم استبدالها بالصفر). ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

PatchTSTForRegressionOutput أو tuple(torch.Tensor)

أحد PatchTSTForRegressionOutput أو مجموعة مرتبة من torch.Tensor (في حال تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على الإعدادات (PatchTSTConfig) والمدخلات.

تتجاوز طريقة PatchTSTForRegression الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • loss (*optional*, returned when labels is provided, torch.Tensor of shape (1,)) — MSE loss.

  • regression_outputs (torch.Tensor من الشكل (batch_size, num_targets)) — مخرجات الانحدار لرؤوس نمذجة السلاسل الزمنية.

  • hidden_states (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (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
Update on GitHub