Transformers documentation
PatchTSMixer
نُشر هذا النموذج في أوراق 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
< 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) — طول الباتش (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.configPatchTSMixerModel
فئة transformers.PatchTSMixerModel
< source >( config: PatchTSMixerConfigmask_input: bool = False )
المعاملات
- config (PatchTSMixerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
- mask_input (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم إخفاء المدخلات باستخدام وحدةPatchTSMixerMasking.
نموذج PatchTSMixer للتنبؤ بالمتسلسلات الزمنية.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق 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 للقيم التي تم ملاحظتها،
- 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.Tensorof shape(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 للقيم التي تم ملاحظتها،
- 0 للقيم التي تكون مفقودة (أي قيم NaN التي تم استبدالها بالأصفار).
- 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ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل. - 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 whenyis provided,torch.Tensorof 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
< 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.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 whenyis provided,torch.Tensorof 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
< source >( config: PatchTSMixerConfig )
المعاملات
- config (PatchTSMixerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
PatchTSMixer للتدريب المسبق على الأقنعة.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق 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 للقيم التي تم ملاحظتها،
- 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 whenyis provided,torch.Tensorof 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
< source >( config: PatchTSMixerConfig )
المعاملات
- config (PatchTSMixerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
PatchTSMixer لتطبيق الانحدار.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق 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.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) للنموذج عند مخرج كل طبقة، بالإضافة إلى مخرجات التضمين الأولي الاختيارية.