Transformers documentation
PatchTSMixer
Model ini dipublikasikan di HF papers pada 2023-06-14 dan disumbangkan ke Hugging Face Transformers pada 2023-12-05.
PatchTSMixer
Ikhtisar
Model PatchTSMixer diusulkan dalam TSMixer: Lightweight MLP-Mixer Model for Multivariate Time Series Forecasting oleh Vijay Ekambaram, Arindam Jati, Nam Nguyen, Phanwadee Sinthong, dan Jayant Kalagnanam.
PatchTSMixer adalah pendekatan pemodelan deret waktu ringan yang didasarkan pada arsitektur MLP-Mixer. Dalam implementasi HuggingFace ini, kami menyediakan kemampuan PatchTSMixer untuk memfasilitasi pencampuran ringan di antara patch, saluran, dan fitur tersembunyi secara mudah, guna pemodelan deret waktu multivariat yang efektif. Model ini juga mendukung berbagai mekanisme perhatian, mulai dari perhatian bergerbang sederhana hingga blok self-attention yang lebih kompleks, yang dapat disesuaikan sesuai kebutuhan. Model dapat dilatih terlebih dahulu (pretrained) dan kemudian digunakan untuk berbagai tugas turunan (downstream) seperti peramalan, klasifikasi, dan regresi.
Abstrak dari makalah tersebut adalah sebagai berikut:
TSMixer adalah arsitektur neural ringan yang sepenuhnya terdiri dari modul multi-layer perceptron (MLP) yang dirancang untuk peramalan multivariat dan pembelajaran representasi pada deret waktu yang di-patch. Model kami terinspirasi dari keberhasilan model MLP-Mixer dalam computer vision. Kami mendemonstrasikan tantangan yang terlibat dalam mengadaptasi Vision MLP-Mixer untuk deret waktu dan memperkenalkan komponen yang telah divalidasi secara empiris untuk meningkatkan akurasi. Ini mencakup paradigma desain baru berupa pemasangan kepala rekonsiliasi online pada backbone MLP-Mixer, untuk secara eksplisit memodelkan properti deret waktu seperti hierarki dan korelasi antar kanal. Kami juga mengusulkan pendekatan pemodelan kanal Hybrid untuk secara efektif menangani interaksi kanal yang berisik dan generalisasi di berbagai dataset, sebuah tantangan umum dalam metode pencampuran kanal berbasis patch yang ada. Selain itu, mekanisme gated attention sederhana diperkenalkan pada backbone untuk memprioritaskan fitur-fitur penting. Dengan mengintegrasikan komponen ringan ini, kami secara signifikan meningkatkan kemampuan pembelajaran struktur MLP sederhana, melampaui model Transformer yang kompleks dengan penggunaan komputasi yang minimal. Selain itu, desain modular TSMixer memungkinkan kompatibilitas dengan metode pembelajaran supervised dan self-supervised berbasis masked, menjadikannya blok bangunan yang menjanjikan untuk Foundation Models deret waktu. TSMixer melampaui model MLP dan Transformer state-of-the-art dalam peramalan dengan selisih yang cukup besar, yaitu 8-60%. TSMixer juga melampaui benchmark kuat terbaru dari model Patch-Transformer (dengan 1-2%) dengan pengurangan memori dan waktu eksekusi yang signifikan (2-3X).
Model ini disumbangkan oleh ajati, vijaye12, gsinthong, namctin, wmgifford, kashif.
Contoh penggunaan
Snippet kode di bawah ini menunjukkan cara menginisialisasi model PatchTSMixer secara acak. Model ini kompatibel dengan 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)Tips penggunaan
Model ini juga dapat digunakan untuk klasifikasi deret waktu dan regresi deret waktu. Lihat kelas PatchTSMixerForTimeSeriesClassification dan PatchTSMixerForRegression yang masing-masing.
Sumber daya
- Sebuah artikel blog yang menjelaskan PatchTSMixer secara mendalam dapat ditemukan di sini. Blog tersebut juga dapat dibuka di Google Colab.
PatchTSMixerConfig
kelas 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' )
Parameter
- context_length (
int, opsional, default 32) — Panjang konteks/riwayat untuk urutan input. - patch_length (
int, opsional, defaultnya 8) — Panjang patch untuk urutan input. - num_input_channels (
int, opsional, defaultnya1) — Jumlah saluran input. - patch_stride (
int, opsional, default 8) — Menentukan tumpang tindih antara dua patch yang berurutan. Atur nilainya ke patch_length (atau lebih besar) jika kita ingin patch yang tidak tumpang tindih. - num_parallel_samples (
int, opsional, default 100) — Jumlah sampel yang akan dihasilkan secara paralel untuk perkiraan probabilistik. - d_model (
int, opsional, default8) — Ukuran lapisan encoder dan lapisan pooler. - expansion_factor (
int, opsional, defaultnya 2) — Faktor ekspansi yang digunakan di dalam MLP. Rentang yang direkomendasikan adalah 2-5. Nilai yang lebih besar menunjukkan model yang lebih kompleks. - num_layers (
int, opsional, default3) — Jumlah lapisan tersembunyi dalam decoder Transformer. - dropout (
Union[float, int], opsional, default0.2) — Rasio untuk semua lapisan dropout. - mode (
str, opsional, default"common_channel") — Mode Mixer. Menentukan cara memproses channel. Nilai yang diizinkan: “common_channel”, “mix_channel”. Dalam mode “common_channel”, kami mengikuti pemodelan Channel-independent tanpa pencampuran channel eksplisit. Pencampuran channel terjadi secara implisit melalui bobot yang dibagikan antar channel. (pendekatan pertama yang disarankan) Dalam mode “mix_channel”, kami mengikuti pencampuran channel eksplisit di samping patch dan feature mixer. (pendekatan yang disarankan ketika korelasi channel sangat penting untuk dimodelkan) - gated_attn (
bool, opsional, defaultTrue) — Aktifkan Gated Attention. - norm_mlp (
str, opsional, default"LayerNorm") — Lapisan normalisasi (BatchNorm atau LayerNorm). - self_attn (
bool, opsional, defaultFalse) — Aktifkan Tiny self attention di antara patch. Fitur ini dapat diaktifkan ketika output dari Vanilla PatchTSMixer dengan gated attention tidak memuaskan. Mengaktifkan ini menghasilkan perhatian pairwise eksplisit dan pemodelan di antara patch. - self_attn_heads (
int, opsional, default 1) — Jumlah kepala self-attention. Hanya berfungsi ketikaself_attndiatur keTrue. - use_positional_encoding (
bool, opsional, defaultnyaFalse) — Aktifkan penggunaan positional embedding untuk lapisan self-attention kecil. Hanya berfungsi ketikaself_attndiatur keTrue. - positional_encoding_type (
str, opsional, defaultnya"sincos") — Enkoding posisi. Opsi"random"dan"sincos"didukung. Berfungsi hanya ketikause_positional_encodingdiatur keTrue - scaling (
stringataubool, opsional, defaultnya"std") — Apakah akan menskalakan target input melalui scaler “mean”, scaler “std”, atau tanpa scaler jikaNone. JikaTrue, scaler diatur ke “mean”. - loss (
string, opsional, default"mse") — Fungsi loss untuk model yang sesuai dengan headdistribution_output. Untuk distribusi parametrik, ini adalah negative log likelihood (“nll”), dan untuk estimasi titik, ini adalah mean squared error “mse”. - init_std (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - norm_eps (
float, opsional, default 1e-05) — Nilai yang ditambahkan ke penyebut untuk stabilitas numerik normalisasi. - mask_type (
str, opsional, default"random") — Jenis masking yang digunakan untuk mode Masked Pretraining. Nilai yang diizinkan adalah “random”, “forecast”. Pada masking Random, titik-titik dimasking secara acak. Pada masking Forecast, titik-titik dimasking ke arah akhir. - random_mask_ratio (
float, opsional, default 0.5) — Rasio masking yang digunakan ketikamask_typeadalahrandom. Nilai yang lebih tinggi menunjukkan lebih banyak masking. - num_forecast_mask_patches (
intataulist, opsional, default[2]) — Jumlah patch yang akan di-mask di akhir setiap sampel batch. Jika berupa bilangan bulat, semua sampel dalam batch akan memiliki jumlah patch yang di-mask sama. Jika berupa list, sampel dalam batch akan di-mask secara acak sesuai angka yang didefinisikan dalam list. Argumen ini hanya digunakan untuk pretraining forecast. - mask_value (
float, opsional, default0.0) — Nilai mask yang akan digunakan. - masked_loss (
bool, opsional, defaultTrue) — Apakah menghitung loss pra-pelatihan hanya pada bagian yang dimasker, atau pada seluruh output. - channel_consistent_masking (
bool, opsional, defaultTrue) — Jika true, masking akan sama di semua channel dari sebuah timeseries. Sebaliknya, posisi masking akan bervariasi antar channel. - unmasked_channel_indices (
list, opsional) — Channel yang tidak di-mask selama pretraining. - head_dropout (
float, opsional, default 0.2) — Probabilitas dropout untuk headPatchTSMixer. - distribution_output (
string, opsional, default"student_t") — Head emisi distribusi untuk model ketika loss adalah “nll”. Bisa berupa “student_t”, “normal” atau “negative_binomial”. - prediction_length (
int, opsional, default 16) — Jumlah langkah waktu untuk diprediksi dalam tugas peramalan. Juga dikenal sebagai Horizon Peramalan. - prediction_channel_indices (
list, opsional) — Daftar indeks channel untuk diprediksi. Jika None, semua channel akan diprediksi. Data target diharapkan memiliki semua channel dan kami secara eksplisit memfilter channel pada prediksi dan target sebelum perhitungan loss. - num_targets (
int, opsional, defaultnya 3) — Jumlah target (dimensi variabel yang diregresi) untuk tugas regresi. - output_range (
list, opsional) — Rentang output untuk membatasi tugas regresi. Defaultnya None. - head_aggregation (
str, opsional, defaultnya"max_pool") — Mode agregasi yang diaktifkan untuk tugas klasifikasi atau regresi. Nilai yang diizinkan adalahNone, “use_last”, “max_pool”, “avg_pool”.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari PatchTSMixerModel. Kelas ini digunakan untuk membuat model Patchtsmixer berdasarkan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari ibm/patchtsmixer-etth1-pretrain
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> 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
kelas transformers.PatchTSMixerModel
< source >( config: PatchTSMixerConfigmask_input: bool = False )
Parameter
- config (PatchTSMixerConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
- mask_input (
bool, opsional, defaultFalse) — Apakah akan memasker input menggunakan modulPatchTSMixerMasking.
Model PatchTSMixer untuk peramalan deret waktu.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( past_values: Tensorobserved_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = None**kwargs ) → PatchTSMixerModelOutput or tuple(torch.Tensor)
Parameter
- past_values (
torch.Tensordengan bentuk(batch_size, seq_length, num_input_channels)) — Nilai konteks dari deret waktu. Untuk tugas pra-pelatihan, ini menunjukkan deret waktu input untuk memprediksi bagian yang dimasker. Untuk tugas peramalan, ini menunjukkan nilai deret waktu historis/masa lalu. Demikian pula, untuk tugas klasifikasi atau regresi, ini menunjukkan nilai konteks yang sesuai dari deret waktu.Untuk deret waktu univariat, dimensi
num_input_channelsharus 1. Untuk deret waktu multivariat, nilainya lebih dari 1. - observed_mask (
torch.Tensordengan bentuk(batch_size, sequence_length, num_input_channels), opsional) — Mask boolean untuk menunjukkan nilaipast_valuesmana yang teramati dan mana yang hilang. Nilai mask dipilih dari[0, 1]:- 1 untuk nilai yang diamati,
- 0 untuk nilai yang hilang (yaitu NaN yang diganti dengan nol).
- output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut.
Mengembalikan
PatchTSMixerModelOutput atau tuple(torch.Tensor)
PatchTSMixerModelOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (PatchTSMixerConfig) dan input.
Metode forward dari PatchTSMixerModel menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
- last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_channels, num_patches, d_model)) — Hidden-state pada output dari lapisan terakhir model. - hidden_states (
tuple(torch.Tensor), opsional) — Hidden-states model pada output setiap layer. - patch_input (
torch.Tensordengan bentuk(batch_size, num_channels, num_patches, patch_length)) — Data input yang telah dipecah menjadi patch untuk model. - mask (
torch.Tensordengan bentuk(batch_size, num_channels, num_patches), opsional) — Tensor Bool yang menunjukkan True pada patch yang dimasker dan False selain itu. - loc (
torch.Tensordengan bentuk(batch_size, 1, num_channels), opsional) — Memberikan rata-rata jendela konteks per kanal. Digunakan untuk revin denorm di luar model, jika revin diaktifkan. - scale (
torch.Tensordengan bentuk(batch_size, 1, num_channels), opsional) — Memberikan standar deviasi dari jendela konteks per kanal. Digunakan untuk revin denorm di luar model, jika revin diaktifkan.
PatchTSMixerForPrediction
kelas transformers.PatchTSMixerForPrediction
< source >( config: PatchTSMixerConfig )
PatchTSMixer untuk aplikasi peramalan.
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)
Parameter
- past_values (
torch.Tensordengan bentuk(batch_size, seq_length, num_input_channels)) — Nilai konteks dari deret waktu. Untuk tugas pra-pelatihan, ini menunjukkan deret waktu input untuk memprediksi bagian yang dimasker. Untuk tugas peramalan, ini menunjukkan nilai deret waktu historis/masa lalu. Demikian pula, untuk tugas klasifikasi atau regresi, ini menunjukkan nilai konteks yang sesuai dari deret waktu.Untuk deret waktu univariat, dimensi
num_input_channelsharus 1. Untuk deret waktu multivariat, nilainya lebih dari 1. - observed_mask (
torch.Tensordengan bentuk(batch_size, sequence_length, num_input_channels), opsional) — Mask boolean untuk menunjukkan nilaipast_valuesmana yang teramati dan mana yang hilang. Nilai mask dipilih dari[0, 1]:- 1 untuk nilai yang diamati,
- 0 untuk nilai yang hilang (yaitu NaN yang diganti dengan nol).
- 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.Untuk tugas peramalan, bentuknya adalah
(batch_size, target_len, num_input_channels). Bahkan jika kita ingin meramalkan hanya saluran tertentu dengan mengatur indeks pada parameterprediction_channel_indices, tetap lewati data target dengan semua saluran, karena penyaringan saluran untuk prediksi dan target akan diterapkan secara manual sebelum komputasi loss. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_loss (
bool, opsional) — Apakah akan mengembalikan loss dalam panggilanforward.
Mengembalikan
PatchTSMixerForPredictionOutput atau tuple(torch.Tensor)
PatchTSMixerForPredictionOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (PatchTSMixerConfig) dan input.
Metode forward dari PatchTSMixerForPrediction menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
- loss (
*optional*, returned whenyis provided,torch.Tensorof shape()) — Total loss. - prediction_outputs (
torch.Tensordengan bentuk(batch_size, prediction_length, num_input_channels)) — Output prediksi dari kepala ramalan (forecast head). - last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_input_channels, num_patches, d_model)) — Embedding backbone sebelum melewati head. - hidden_states (
tuple(torch.Tensor), opsional) — Hidden-states dari model pada output setiap layer ditambah output embedding awal yang opsional. - loc (
torch.Tensor, opsional dengan bentuk(batch_size, 1, num_input_channels)) — Rata-rata input - scale (
torch.Tensor, opsional dengan bentuk(batch_size, 1, num_input_channels)) — Deviasi standar input
PatchTSMixerForTimeSeriesClassification
kelas transformers.PatchTSMixerForTimeSeriesClassification
< source >( config: PatchTSMixerConfig )
PatchTSMixer untuk aplikasi klasifikasi.
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)
Parameter
- past_values (
torch.Tensordengan bentuk(batch_size, seq_length, num_input_channels)) — Nilai konteks dari deret waktu. Untuk tugas pra-pelatihan, ini menunjukkan deret waktu input untuk memprediksi bagian yang dimasker. Untuk tugas peramalan, ini menunjukkan nilai deret waktu historis/masa lalu. Demikian pula, untuk tugas klasifikasi atau regresi, ini menunjukkan nilai konteks yang sesuai dari deret waktu.Untuk deret waktu univariat, dimensi
num_input_channelsharus 1. Untuk deret waktu multivariat, nilainya lebih dari 1. - target_values (
torch.Tensorof shape(batch_size, target_len, num_input_channels)for forecasting, —(batch_size, num_targets)for regression, or(batch_size,)for classification, optional): Target values of the time series, that serve as labels for the model. Thetarget_valuesis what the Transformer needs during training to learn to output, given thepast_values. Note that, this is NOT required for a pretraining task.Untuk tugas peramalan, bentuknya adalah
(batch_size, target_len, num_input_channels). Bahkan jika kita ingin meramalkan hanya saluran tertentu dengan mengatur indeks pada parameterprediction_channel_indices, tetap lewati data target dengan semua saluran, karena penyaringan saluran untuk prediksi dan target akan diterapkan secara manual sebelum komputasi loss.Untuk tugas klasifikasi, bentuknya adalah
(batch_size,).Untuk tugas regresi, bentuknya adalah
(batch_size, num_targets). - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_loss (
bool, opsional) — Apakah akan mengembalikan loss dalam panggilanforward.
Mengembalikan
PatchTSMixerForTimeSeriesClassificationOutput atau tuple(torch.Tensor)
PatchTSMixerForTimeSeriesClassificationOutput atau tuple dari
torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (PatchTSMixerConfig) dan input.
Metode forward dari PatchTSMixerForTimeSeriesClassification menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
- loss (
*optional*, dikembalikan saatydisediakan,torch.Tensordengan bentuk()) — Total loss. - prediction_outputs (
torch.Tensordengan bentuk(batch_size, num_labels)) — Output prediksi dari kepala klasifikasi. - last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_input_channels, num_patches, d_model)) — Embedding backbone sebelum melewati head. - hidden_states (
tuple(torch.Tensor), opsional) — Hidden-states dari model pada output setiap layer ditambah output embedding awal yang opsional.
PatchTSMixerForPretraining
kelas transformers.PatchTSMixerForPretraining
< source >( config: PatchTSMixerConfig )
Parameter
- config (PatchTSMixerConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
PatchTSMixer untuk pra-pelatihan masker.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
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)
Parameter
- past_values (
torch.Tensordengan bentuk(batch_size, seq_length, num_input_channels)) — Nilai konteks dari deret waktu. Untuk tugas pra-pelatihan, ini menunjukkan deret waktu input untuk memprediksi bagian yang dimasker. Untuk tugas peramalan, ini menunjukkan nilai deret waktu historis/masa lalu. Demikian pula, untuk tugas klasifikasi atau regresi, ini menunjukkan nilai konteks yang sesuai dari deret waktu.Untuk deret waktu univariat, dimensi
num_input_channelsharus 1. Untuk deret waktu multivariat, nilainya lebih dari 1. - observed_mask (
torch.Tensordengan bentuk(batch_size, sequence_length, num_input_channels), opsional) — Mask boolean untuk menunjukkan nilaipast_valuesmana yang teramati dan mana yang hilang. Nilai mask dipilih dari[0, 1]:- 1 untuk nilai yang diamati,
- 0 untuk nilai yang hilang (yaitu NaN yang diganti dengan nol).
- output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_loss (
bool, opsional) — Apakah akan mengembalikan loss dalam panggilanforward.
Mengembalikan
PatchTSMixerForPreTrainingOutput atau tuple(torch.Tensor)
PatchTSMixerForPreTrainingOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (PatchTSMixerConfig) dan input.
Metode forward dari PatchTSMixerForPretraining menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
- loss (
*optional*, returned whenyis provided,torch.Tensorof shape()) — Total loss - prediction_outputs (
torch.Tensordengan bentuk(batch_size, num_input_channels, num_patches, patch_length)) — Output prediksi dari pretrain head. - last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_input_channels, num_patches, d_model)) — Embedding backbone sebelum melewati head. - hidden_states (
tuple(torch.Tensor), opsional) — Hidden-states model pada output setiap layer.
PatchTSMixerForRegression
kelas transformers.PatchTSMixerForRegression
< source >( config: PatchTSMixerConfig )
Parameter
- config (PatchTSMixerConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
PatchTSMixer untuk aplikasi regresi.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
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)
Parameter
- past_values (
torch.Tensordengan bentuk(batch_size, seq_length, num_input_channels)) — Nilai konteks dari deret waktu. Untuk tugas pra-pelatihan, ini menunjukkan deret waktu input untuk memprediksi bagian yang dimasker. Untuk tugas peramalan, ini menunjukkan nilai deret waktu historis/masa lalu. Demikian pula, untuk tugas klasifikasi atau regresi, ini menunjukkan nilai konteks yang sesuai dari deret waktu.Untuk deret waktu univariat, dimensi
num_input_channelsharus 1. Untuk deret waktu multivariat, nilainya lebih dari 1. - target_values (
torch.Tensorof shape(batch_size, target_len, num_input_channels)for forecasting, —(batch_size, num_targets)for regression, or(batch_size,)for classification, optional): Target values of the time series, that serve as labels for the model. Thetarget_valuesis what the Transformer needs during training to learn to output, given thepast_values. Note that, this is NOT required for a pretraining task.Untuk tugas peramalan, bentuknya adalah
(batch_size, target_len, num_input_channels). Bahkan jika kita ingin meramalkan hanya saluran tertentu dengan mengatur indeks pada parameterprediction_channel_indices, tetap lewati data target dengan semua saluran, karena penyaringan saluran untuk prediksi dan target akan diterapkan secara manual sebelum komputasi loss.Untuk tugas klasifikasi, bentuknya adalah
(batch_size,).Untuk tugas regresi, bentuknya adalah
(batch_size, num_targets). - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_loss (
bool, opsional) — Apakah akan mengembalikan loss dalam panggilanforward.
Mengembalikan
PatchTSMixerForRegressionOutput atau tuple(torch.Tensor)
PatchTSMixerForRegressionOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (PatchTSMixerConfig) dan input.
Metode forward dari PatchTSMixerForRegression menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
- loss (
*optional*, returned whenyis provided,torch.Tensorof shape()) — Total loss. - regression_outputs (
torch.Tensordengan bentuk(batch_size, num_targets)) — Output prediksi dari kepala regresi. - last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_input_channels, num_patches, d_model)) — Embedding backbone sebelum melewati head. - hidden_states (
tuple(torch.Tensor), opsional) — Hidden-states dari model pada output setiap layer ditambah output embedding awal yang opsional.