Transformers documentation

PatchTSMixer

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 في 14 يونيو 2023، وأُضيف إلى Hugging Face Transformers في 5 ديسمبر 2023.

PatchTSMixer

نظرة عامة

قُدِّم نموذج PatchTSMixer في TSMixer: Lightweight MLP-Mixer Model for Multivariate Time Series Forecasting من قِبل Vijay Ekambaram وArindam Jati وNam Nguyen وPhanwadee Sinthong وJayant Kalagnanam.

PatchTSMixer هو نهج خفيف الوزن لنمذجة السلاسل الزمنية يعتمد على بنية MLP-Mixer. في هذا التنفيذ على HuggingFace، نوفر قدرات PatchTSMixer لتسهيل الخلط الخفيف الوزن عبر البقع (patches) والقنوات والميزات المخفية، مما يتيح نمذجة فعّالة للسلاسل الزمنية متعددة المتغيرات. كما يدعم آليات انتباه متنوعة، بدءًا من الانتباه البسيط المُدار (gated attention) وصولاً إلى كتل الانتباه الذاتي الأكثر تعقيدًا، والتي يمكن تخصيصها وفقًا للسياق. يمكن تدريب النموذج مسبقًا ثم استخدامه لمهام لاحقة متنوعة مثل التنبؤ والتصنيف والانحدار.

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

تُعد TSMixer بنية عصبية خفيفة الوزن تتكون حصرياً من وحدات محددات الاستجابة المتعددة الطبقات (MLP)، وهي مصممة للتنبؤ متعدد المتغيرات وتعلم التمثيل على سلاسل زمنية مقسمة إلى مقاطع. يستلهم نموذجنا نجاح نماذج MLP-Mixer في مجال رؤية الحاسوب. نُظهر التحديات المرتبطة بتكييف Vision MLP-Mixer لسلاسل زمنية، ونُقدّم مكونات مُتحقَّق منها تجريبياً لتعزيز الدقة. ويشمل ذلك تصميم جديد يربط رؤوس المصالحة الفورية (online reconciliation heads) بهيكل MLP-Mixer الأساسي، لنمذجة خصائص السلاسل الزمنية مثل التسلسل الهرمي والتداخلات بين القنوات بشكل صريح. كما نقترح نهجاً هجيناً لنمذجة القنوات للتعامل بفعالية مع تفاعلات القنوات الضجيجية والتعميم عبر مجموعات بيانات متنوعة، وهو تحدٍّ شائع في طرق خلط المقاطع والقنوات الحالية. بالإضافة إلى ذلك، نُقدّم آلية انتباه بسيطة مبنية على البوابات (gated attention) في الهيكل الأساسي لإعطاء الأولوية للميزات المهمة. من خلال دمج هذه المكونات الخفيفة الوزن، نعزز بشكل كبير قدرة التعلم في هياكل MLP البسيطة، متفوقين على نماذج Transformer المعقدة مع استخدام حاسوبي ضئيل. علاوة على ذلك، يتيح التصميم المعياري لـ TSMixer التوافق مع كل من طرق التعلم المُشرف والتعلم الذاتي المُشرف المقنّع (masked self-supervised learning)، مما يجعله عنصراً أساسياً واعدًا لنماذج الأساس (Foundation Models) الخاصة بالسلاسل الزمنية. تتفوق TSMixer على أحدث نماذج MLP وTransformer في التنبؤ بفارق كبير يتراوح بين 8% و60%. كما تتفوق على أحدث المعايير القوية لنماذج Patch-Transformer (بفارق 1-2%) مع انخفاض كبير في الذاكرة وزمن التشغيل (2-3 أضعاف).

تمت مساهمة هذا النموذج من قِبل 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

< >

( 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) — طول الباتش (patch) لسلسلة الإدخال.
  • num_input_channels (int، اختياري، القيمة الافتراضية 1) — عدد قنوات الإدخال.
  • patch_stride (int، اختياري، القيمة الافتراضية 8) — يحدد التداخل بين قطعتين متتاليتين. اضبطه على 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") — وضع المخلّط. يحدد كيفية معالجة القنوات. القيم المسموح بها: “common_channel” و “mix_channel”. في وضع “common_channel”, نتبع نمذجة مستقلة عن القناة دون خلط صريح للقنوات. يحدث خلط القنوات بشكل ضمني عبر الأوزان المشتركة بين القنوات. (النهج المفضل أولاً) في وضع “mix_channel” ، نتبع خلطاً صريحاً للقنوات بالإضافة إلى مخلّط الباتش والميزات. (النهج المفضل عندما تكون ارتباطات القناة مهمة جداً للنمذجة)
  • gated_attn (bool، اختياري، القيمة الافتراضية True) — تفعيل الانتباه البوَّابي (Gated Attention).
  • 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 (string أو bool، اختياري، القيمة الافتراضية "std") — ما إذا كان سيتم توسيع الأهداف المدخلة عبر مُوسِّع “mean” أو مُوسِّع “std” أو بدون مُوسِّع إذا كانت None. إذا كانت 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") — نوع الإخفاء (Masking) المستخدم في وضع التدريب المسبق المُخفى (Masked Pretraining). القيم المسموح بها هي “random” و “forecast”. في الإخفاء العشوائي (Random masking)، تُخفى النقاط بشكل عشوائي. أما في الإخفاء التنبؤي (Forecast masking)، فتُخفى النقاط باتجاه النهاية.
  • 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) — عندما تكون القيمة صحيحة، تكون عملية الإخفاء متطابقة عبر جميع قنوات السلسلة الزمنية. وإلا، فإن مواضع الإخفاء تتفاوت بين القنوات.
  • unmasked_channel_indices (list، اختياري) — القنوات التي لا تُقنَّع أثناء التدريب المسبق.
  • head_dropout (float، اختياري، القيمة الافتراضية 0.2) — احتمالية الإسقاط (dropout) في رأس PatchTSMixer.
  • 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 وفقًا للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ 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

فئة transformers.PatchTSMixerModel

< >

( config: PatchTSMixerConfigmask_input: bool = False )

المعاملات

  • config (PatchTSMixerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
  • mask_input (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم إخفاء المدخلات باستخدام وحدة PatchTSMixerMasking.

نموذج PatchTSMixer للتنبؤ بالمتسلسلات الزمنية.

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

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

forward

< >

( 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 للقيم التي تم ملاحظتها،
    • 0 للقيم التي تكون مفقودة (أي قيم NaN التي تم استبدالها بالأصفار).
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع 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)، اختياري) — حالات الإخفاء (Hidden-states) للنموذج عند مخرج كل طبقة.
  • patch_input (torch.Tensor من الشكل (batch_size, num_channels, num_patches, patch_length)) — بيانات المدخلات المقسمة إلى رقعات المُرسَلة إلى النموذج.
  • قناع (torch.Tensor من الشكل (batch_size, num_channels, num_patches)، اختياري) — مصفوفة منطقية (Bool Tensor) تشير إلى True في البقع المقنّعة وFalse في غير ذلك.
  • loc (torch.Tensor من الشكل (batch_size, 1, num_channels)، اختياري) — يعطي متوسط نافذة السياق لكل قناة. يُستخدم لتطبيع revin خارج النموذج، إذا كان revin مفعلاً.
  • scale (torch.Tensor of shape (batch_size, 1, num_channels), اختياري) — يحدد الانحراف المعياري لنافذة السياق لكل قناة. يُستخدم لتطبيع revin خارج النموذج، إذا كان revin مفعلاً.

PatchTSMixerForPrediction

فئة transformers.PatchTSMixerForPrediction

< >

( config: PatchTSMixerConfig )

المعاملات

  • config (PatchTSMixerConfig) — إعدادات.

PatchTSMixer لتطبيقات التنبؤ.

forward

< >

( 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 للقيم التي تم ملاحظتها،
    • 0 للقيم التي تكون مفقودة (أي قيم NaN التي تم استبدالها بالأصفار).
  • future_values (torch.Tensor of 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. The future_values is what the Transformer needs during training to learn to output, given the past_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 ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • 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*, returned when y is provided, torch.Tensor of shape ()) — Total loss.
  • 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)، اختياري) — حالات الإخفاء (Hidden-states) للنموذج عند مخرج كل طبقة، بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
  • loc (torch.Tensor، اختياري من الشكل (batch_size, 1, num_input_channels)) — متوسط المدخلات
  • scale (torch.Tensor، اختياري من الشكل (batch_size, 1, num_input_channels)) — الانحراف المعياري للمدخل

PatchTSMixerForTimeSeriesClassification

فئة transformers.PatchTSMixerForTimeSeriesClassification

< >

( config: PatchTSMixerConfig )

المعاملات

  • config (PatchTSMixerConfig) — إعدادات.

PatchTSMixer لتطبيق التصنيف.

forward

< >

( 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.Tensor بشكل (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، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع 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*, returned when y is provided, torch.Tensor of shape ()) — Total loss.
  • 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)، اختياري) — حالات الإخفاء (Hidden-states) للنموذج عند مخرج كل طبقة، بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

PatchTSMixerForPretraining

فئة transformers.PatchTSMixerForPretraining

< >

( config: PatchTSMixerConfig )

المعاملات

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

PatchTSMixer للتدريب المسبق على الأقنعة.

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

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

forward

< >

( 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 للقيم التي تم ملاحظتها،
    • 0 للقيم التي تكون مفقودة (أي قيم NaN التي تم استبدالها بالأصفار).
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع 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*, returned when y is provided, torch.Tensor of shape ()) — Total loss
  • prediction_outputs (torch.Tensor من الشكل (batch_size, num_input_channels, num_patches, patch_length)) — مخرجات التنبؤ من رأس التدريب المسبق.
  • last_hidden_state (torch.Tensor من الشكل (batch_size, num_input_channels, num_patches, d_model)) — تمثيلات الهيكل العظمي قبل المرور عبر الرأس.
  • hidden_states (tuple(torch.Tensor)، اختياري) — حالات الإخفاء (Hidden-states) للنموذج عند مخرج كل طبقة.

PatchTSMixerForRegression

فئة transformers.PatchTSMixerForRegression

< >

( config: PatchTSMixerConfig )

المعاملات

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

PatchTSMixer لتطبيق الانحدار.

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

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

forward

< >

( 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.Tensor بشكل (batch_size, target_len, num_input_channels) للتنبؤ، — (batch_size, num_targets) للانحدار، أو (batch_size,) للتصنيف، اختياري): قيم الأهداف لسلسلة الزمنية، والتي تعمل كوسوم للنموذج. الـ target_values هو ما يحتاجه الـ past_values. لاحظ أن هذا ليس مطلوبًا لمهمة ما قبل التدريب.

    في مهمة التنبؤ، يكون الشكل (batch_size, target_len, num_input_channels). حتى لو أردنا التنبؤ بقنوات محددة فقط من خلال تعيين الفهارس في معامل prediction_channel_indices، فمرر بيانات الهدف مع جميع القنوات، إذ يُطبَّق تصفية القنوات لكلٍّ من التنبؤ والهدف يدوياً قبل حساب الدالة الخاسرة.

    في مهمة تصنيف، يكون شكلها (batch_size,).

    في مهمة الانحدار، يكون شكلها (batch_size, num_targets).

  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع 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)، اختياري) — حالات الإخفاء (Hidden-states) للنموذج عند مخرج كل طبقة، بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
Update on GitHub