# PatchTSMixer

## Genel Bakış

PatchTSMixer modeli, Vijay Ekambaram, Arindam Jati, Nam Nguyen, Phanwadee Sinthong ve Jayant Kalagnanam tarafından [TSMixer: Lightweight MLP-Mixer Model for Multivariate Time Series Forecasting](https://huggingface.co/papers/2306.09364) makalesinde önerilmiştir.

PatchTSMixer, MLP-Mixer mimarisine dayanan hafif bir zaman serisi modelleme yaklaşımıdır. Bu HuggingFace uygulamasında, PatchTSMixer'in yeteneklerini sağlayarak çok değişkenli zaman serisi modellemesi için yamalar, kanallar ve gizli özellikler arasında etkili ve zahmetsiz karıştırmayı kolaylaştırır. Ayrıca, basit kapılı dikkat (gated attention) mekanizmasından, buna göre özelleştirilebilecek daha karmaşık öz-dikkat (self-attention) bloklarına kadar çeşitli dikkat mekanizmalarını destekler. Model, önceden eğitilebilir ve ardından tahminleme, sınıflandırma ve regresyon gibi çeşitli aşağı akış (downstream) görevlerinde kullanılabilir.

Makalenin özeti aşağıdaki gibidir:

*TSMixer, yamalı zaman serileri üzerinde çok değişkenli tahmin ve temsil öğrenmesi için tasarlanmış, yalnızca çok katmanlı algılayıcı (MLP) modüllerinden oluşan hafif bir sinirsel mimaridir. Modelimiz, bilgisayar görüşünde MLP-Mixer modellerinin başarısından ilham alır. Zaman serileri için Vision MLP-Mixer'ın uyarlanmasındaki zorlukları gösteriyor ve doğruluğu artırmak için ampirik olarak doğrulanmış bileşenler sunuyoruz. Bu, hiyerarşi ve kanal korelasyonları gibi zaman serisi özelliklerini açıkça modellemek için MLP-Mixer omurgasına çevrimiçi uzlaştırma başlıklarının bağlanmasını içeren yeni bir tasarım paradigmasını kapsamaktadır. Ayrıca, mevcut yama kanal karıştırma yöntemlerinde yaygın bir zorluk olan gürültülü kanal etkileşimlerini ve çeşitli veri kümeleri genelinde genelleştirmeyi etkili bir şekilde ele almak için Hibrit kanal modelleme yaklaşımı öneriyoruz. Ek olarak, önemli özelliklere öncelik vermek için omurgaya basit bir kapılı dikkat mekanizması tanıtılmaktadır. Bu hafif bileşenleri dahil ederek, basit MLP yapılarının öğrenme yeteneğini önemli ölçüde artırıyor ve minimal hesaplama kullanımıyla karmaşık Transformer modellerini geride bırakıyoruz. Üstelik TSMixer'ın modüler tasarımı, hem denetimli hem de maskeli öz-denetimsiz öğrenme yöntemleriyle uyumluluk sağlayarak onu zaman serisi Temel Modelleri için umut verici bir yapı taşı haline getiriyor. TSMixer, tahminde en son MLP ve Transformer modellerini 8-60% gibi önemli bir farkla geride bırakıyor. Ayrıca, bellek ve çalışma süresinde önemli bir azalma (2-3X) ile en son güçlü Patch-Transformer modelleri referans noktalarını (1-2% ile) geride bırakıyor.*

Bu model [ajati](https://huggingface.co/ajati), [vijaye12](https://huggingface.co/vijaye12), [gsinthong](https://huggingface.co/gsinthong), [namctin](https://huggingface.co/namctin), [wmgifford](https://huggingface.co/wmgifford) ve [kashif](https://huggingface.co/kashif) tarafından katkıda bulunmuştur.

## Kullanım örneği

Aşağıdaki kod parçası, bir PatchTSMixer modelinin rastgele nasıl başlatıldığını göstermektedir. Model, [Trainer API](../trainer) ile uyumludur.

```python

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

## Kullanım ipuçları

Model, zaman serisi sınıflandırma ve zaman serisi regresyon için de kullanılabilir. İlgili [PatchTSMixerForTimeSeriesClassification](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerForTimeSeriesClassification) ve [PatchTSMixerForRegression](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerForRegression) sınıflarına bakın.

## Kaynaklar

- PatchTSMixer'i derinlemesine açıklayan bir blog yazısı [burada](https://huggingface.co/blog/patchtsmixer) bulunabilir. Blog, Google Colab'ta da açılabilir.

## PatchTSMixerConfig[[transformers.PatchTSMixerConfig]]

#### transformers.PatchTSMixerConfig[[transformers.PatchTSMixerConfig]]

```python
transformers.PatchTSMixerConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, context_length: int = 32, patch_length: int = 8, num_input_channels: int = 1, patch_stride: int = 8, num_parallel_samples: int = 100, d_model: int = 8, expansion_factor: int = 2, num_layers: int = 3, dropout: float | int = 0.2, mode: str = 'common_channel', gated_attn: bool = True, norm_mlp: str = 'LayerNorm', self_attn: bool = False, self_attn_heads: int = 1, use_positional_encoding: bool = False, positional_encoding_type: str = 'sincos', scaling: str | bool | None = 'std', loss: str = 'mse', init_std: float = 0.02, norm_eps: float = 1e-05, mask_type: str = 'random', random_mask_ratio: float = 0.5, num_forecast_mask_patches: list[int] | tuple[int, ...] | int | None = (2,), mask_value: int = 0, masked_loss: bool = True, channel_consistent_masking: bool = True, unmasked_channel_indices: list[int] | None = None, head_dropout: float | int = 0.2, distribution_output: str = 'student_t', prediction_length: int = 16, prediction_channel_indices: list | None = None, num_targets: int = 3, output_range: list | None = None, head_aggregation: str | None = 'max_pool')
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/patchtsmixer/configuration_patchtsmixer.py#L24)

**Parametreler:**

context_length (`int`, *isteğe bağlı*, varsayılan 32) : Girdi dizisi için bağlam/geçmiş uzunluğu.

patch_length (`int`, *isteğe bağlı*, varsayılan 8) : Girdi dizisi için yama uzunluğu.

num_input_channels (`int`, *isteğe bağlı*, varsayılan `1`) : Girdi kanal sayısı.

patch_stride (`int`, *isteğe bağlı*, varsayılan 8) : Ardışık iki yama arasındaki örtüşmeyi belirler. Örtüşmeyen yamalar isteniyorsa patch_length (veya daha büyük) olarak ayarlayın.

num_parallel_samples (`int`, *isteğe bağlı*, varsayılan 100) : Olasılıksal tahmin için paralel olarak üretilecek örnek sayısı.

d_model (`int`, *isteğe bağlı*, varsayılan `8`) : Kodlayıcı katmanlarının ve havuzlayıcı katmanının boyutu.

expansion_factor (`int`, *opsiyonel*, varsayılan 2) : MLP içinde kullanılacak genişleme faktörü. Önerilen aralık 2-5'tir. Daha büyük değer, daha karmaşık bir modele işaret eder.

num_layers (`int`, *isteğe bağlı*, varsayılan `3`) : Transformer decoder'ındaki gizli katman sayısı.

dropout (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.2`) : Tüm dropout katmanları için oran.

mode (`str`, *isteğe bağlı*, varsayılan `"common_channel"`) : Karıştırıcı Modu. Kanalların nasıl işleneceğini belirler. İzin verilen değerler: "common_channel", "mix_channel". "common_channel" modunda, açık bir kanal karıştırması olmadan Kanaldan Bağımsız Modelleme'yi izleriz. Kanal karıştırması, kanallar arası paylaşılan ağırlıklar aracılığıyla dolaylı bir şekilde gerçekleşir. (tercih edilen ilk yaklaşım) "mix_channel" modunda, yama ve özellik karıştırıcısının yanı sıra açık kanal karıştırmasını izleriz. (kanal korelasyonlarını modellemek çok önemli olduğunda tercih edilen yaklaşım)

gated_attn (`bool`, *isteğe bağlı*, varsayılan `True`) : Gated Attention'ı etkinleştirir.

norm_mlp (`str`, *isteğe bağlı*, varsayılan `"LayerNorm"`) : Normalizasyon katmanı (BatchNorm veya LayerNorm).

self_attn (`bool`, *isteğe bağlı*, varsayılan `False`) : Yama (patch)lar arasında Tiny öz-dikkati (self attention) etkinleştirir. Gated attention ile Vanilla PatchTSMixer çıktısı tatmin edici olmadığında bu özellik etkinleştirilebilir. Bu özelliğin etkinleştirilmesi, yama (patch)lar arasında açık çiftler arası dikkat (pair-wise attention) ve modellemeye yol açar.

self_attn_heads (`int`, *isteğe bağlı*, varsayılan 1) : Kendi kendine dikkat (self-attention) baş sayısı. Yalnızca `self_attn` `True` olarak ayarlandığında çalışır.

use_positional_encoding (`bool`, *isteğe bağlı*, varsayılan `False`) : Küçük öz-dikkat katmanları için konumsal gömme kullanımını etkinleştirir. Yalnızca `self_attn` `True` olarak ayarlandığında çalışır.

positional_encoding_type (`str`, *isteğe bağlı*, varsayılan `"sincos"`) : Konumsal kodlamalar. `"random"` ve `"sincos"` seçenekleri desteklenir. Yalnızca `use_positional_encoding` `True` olarak ayarlandığında çalışır

scaling (`string` veya `bool`, *isteğe bağlı*, varsayılan `"std"`) : Girdi hedeflerinin "mean" ölçekleyici, "std" ölçekleyici veya `None` ise ölçekleyici olmadan ölçeklenip ölçeklenmeyeceğini belirtir. `True` ise ölçekleyici "mean" olarak ayarlanır.

loss (`string`, *isteğe bağlı*, varsayılan `"mse"`) : `distribution_output` başlığına karşılık gelen modelin kayıp fonksiyonu. Parametrik dağılımlar için negatif log olma olasılığı ("nll"), nokta tahminleri için ise ortalama kare hatadır "mse".

init_std (`float`, *opsiyonel*, varsayılan `0.02`) : Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.

norm_eps (`float`, *opsiyonel*, varsayılan 1e-05) : Normalizasyonun sayısal kararlılığı için paydaya eklenen bir değer.

mask_type (`str`, *isteğe bağlı*, varsayılan `"random"`) : Masked Pretraining modu için kullanılacak maskeleme türü. İzin verilen değerler "random" ve "forecast"tir. Random maskelemede, noktalar rastgele maskelenir. Forecast maskelemede, noktalar sona doğru maskelenir.

random_mask_ratio (`float`, *opsiyonel*, varsayılan 0.5) : `mask_type` `random` olduğunda kullanılacak maskeleme oranı. Daha yüksek değer, daha fazla maskeleme anlamına gelir.

num_forecast_mask_patches (`int` veya `list`, *isteğe bağlı*, varsayılan `[2]`) : Her batch örneğinin sonunda maskelenecek yama sayısı. Tamsayı ise, batch'teki tüm örneklerde maskelenen yama sayısı aynı olacaktır. Liste ise, batch'teki örnekler listede tanımlanan sayılarla rastgele maskelenecektir. Bu argüman yalnızca tahmin ön eğitimi için kullanılır.

mask_value (`float`, *isteğe bağlı*, varsayılan `0.0`) : Kullanılacak maske değeri.

masked_loss (`bool`, *isteğe bağlı*, varsayılan `True`) : Ön eğitim kaybının yalnızca maskelenmiş bölümlerde mi yoksa tüm çıktı üzerinde mi hesaplanacağı.

channel_consistent_masking (`bool`, *isteğe bağlı*, varsayılan `True`) : Değer gerçek olduğunda, maskeleme zaman serisinin tüm kanalları arasında aynı olacaktır. Aksi takdirde, maskeleme konumları kanallar arasında değişecektir.

unmasked_channel_indices (`list`, *isteğe bağlı*) : Ön eğitim sırasında maskelenmeyen kanallar.

head_dropout (`float`, *opsiyonel*, varsayılan 0.2) : `PatchTSMixer` başlığı için dropout olasılığı.

distribution_output (`string`, *opsiyonel*, varsayılan `"student_t"`) : Kayıp "nll" olduğunda modelin dağılım emisyon başlığı. "student_t", "normal" veya "negative_binomial" olabilir.

prediction_length (`int`, *isteğe bağlı*, varsayılan 16) : Tahmin görevi için tahmin edilecek zaman adımı sayısı. Ayrıca Forecast Horizon olarak da bilinir.

prediction_channel_indices (`list`, *optional*) : List of channel indices to forecast. If None, forecast all channels. Target data is expected to have all channels and we explicitly filter the channels in prediction and target before loss computation.

num_targets (`int`, *isteğe bağlı*, varsayılan 3) : Bir regresyon görevi için hedef sayısı (regresyon değişkeninin boyutluluğu).

output_range (`list`, *isteğe bağlı*) : Geri dönüşüm görevi için kısıtlanacak çıktı aralığı. Varsayılan olarak None'dir.

head_aggregation (`str`, *isteğe bağlı*, varsayılan `"max_pool"`) : Sınıflandırma veya regresyon görevi için etkinleştirilecek birleştirme modu. İzin verilen değerler `None`, "use_last", "max_pool", "avg_pool" şeklindedir.

Bu, bir PatchTSMixerModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Patchtsmixer modelinin örneklenmesi ve model mimarisinin tanımlanması için kullanılır. Varsayılanlarla bir yapılandırma örneği oluşturmak, [ibm/patchtsmixer-etth1-pretrain](https://huggingface.co/ibm/patchtsmixer-etth1-pretrain) yapılandırmasına benzer bir yapılandırma elde edilmesini sağlar.

Yapılandırma nesneleri [PreTrainedConfig](/docs/transformers/main/tr/main_classes/configuration#transformers.PreTrainedConfig) sınıfından türetilir ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için [PreTrainedConfig](/docs/transformers/main/tr/main_classes/configuration#transformers.PreTrainedConfig) belgesini okuyun.

Örnek:

```python
>>> 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]]

#### transformers.PatchTSMixerModel[[transformers.PatchTSMixerModel]]

```python
transformers.PatchTSMixerModel(config: PatchTSMixerConfig, mask_input: bool = False)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/patchtsmixer/modeling_patchtsmixer.py#L1200)

**Parametreler:**

config ([PatchTSMixerConfig](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

mask_input (`bool`, *isteğe bağlı*, varsayılan `False`) : Girdinin `PatchTSMixerMasking` modülü kullanılarak maskelemesinin yapılıp yapılmayacağını belirtir.

Zaman serisi tahmini için PatchTSMixer Modeli.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.PatchTSMixerModel.forward]]

```python
forward(past_values: Tensor, observed_mask: typing.Optional[torch.Tensor] = None, output_hidden_states: bool | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/patchtsmixer/modeling_patchtsmixer.py#L1226)

**Parametreler:**

past_values (`torch.Tensor`, şekli `(batch_size, seq_length, num_input_channels)`) : Zaman serisinin bağlam değerleri. Ön eğitim görevi için, maskelenmiş kısmı tahmin etmek üzere girdi olarak kullanılan zaman serisini ifade eder. Tahmin görevi için, geçmiş/geçmiş zaman serisi değerlerini ifade eder. Benzer şekilde, sınıflandırma veya regresyon görevleri için, zaman serisinin uygun bağlam değerlerini ifade eder. Tek değişkenli zaman serileri için `num_input_channels` boyutu 1 olmalıdır. Çok değişkenli zaman serileri için 1'den büyüktür.

observed_mask (`torch.Tensor`, şekli `(batch_size, sequence_length, num_input_channels)`, *isteğe bağlı*) : Hangi `past_values`'lerin gözlemlendiğini ve hangilerinin eksik olduğunu belirtmek için Boolean maske. `[0, 1]` aralığında seçilen maske değerleri: - **gözlemlenen** değerler için 1, - **eksik** değerler için 0 (yani sıfırlarla değiştirilen NaN'lar).

output_hidden_states (`bool`, *isteğe bağlı*) : Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `hidden_states` bölümüne bakın.

**Dönüş:** `PatchTSMixerModelOutput` veya `tuple(torch.Tensor)`

A `PatchTSMixerModelOutput` veya bir `torch.Tensor` tuple'ı (eğer `return_dict=False` geçirilirse veya `config.return_dict=False` ise), yapılandırmaya ([PatchTSMixerConfig](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[PatchTSMixerModel](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerModel) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **last_hidden_state** (`torch.Tensor`, şekli `(batch_size, num_channels, num_patches, d_model)`) -- Modelin son katmanının çıktısındaki gizli durum.
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*) -- Modelin her katmanının çıktısındaki gizli durumları.
- **patch_input** (`torch.Tensor`, şekli `(batch_size, num_channels, num_patches, patch_length)`) -- Modelin yamalanmış girdi verisi.
- **mask** (`torch.Tensor`, şekli `(batch_size, num_channels, num_patches)`, *isteğe bağlı*) -- Maskelenmiş yamalarda True, diğer durumlarda False değerini içeren Bool Tensor.
- **loc** (`torch.Tensor`, şekli `(batch_size, 1, num_channels)`, *isteğe bağlı*) -- Kanal başına bağlam penceresinin ortalamasını verir. revin etkinleştirildiyse, model dışında revin denorm için kullanılır.
- **scale** (`torch.Tensor`, şekli `(batch_size, 1, num_channels)`, *isteğe bağlı*) -- Kanal başına bağlam penceresinin standart sapmasını verir. revin etkinleştirildiyse, model dışında revin denorm için kullanılır.

## PatchTSMixerForPrediction[[transformers.PatchTSMixerForPrediction]]

#### transformers.PatchTSMixerForPrediction[[transformers.PatchTSMixerForPrediction]]

```python
transformers.PatchTSMixerForPrediction(config: PatchTSMixerConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/patchtsmixer/modeling_patchtsmixer.py#L1481)

**Parametreler:**

config (`PatchTSMixerConfig`) : Yapılandırma.

**Dönüş:**

`None`.

Tahmin uygulamaları için `PatchTSMixer`.

#### forward[[transformers.PatchTSMixerForPrediction.forward]]

```python
forward(past_values: Tensor, observed_mask: typing.Optional[torch.Tensor] = None, future_values: typing.Optional[torch.Tensor] = None, output_hidden_states: bool | None = None, return_loss: bool = True, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/patchtsmixer/modeling_patchtsmixer.py#L1523)

**Parametreler:**

past_values (`torch.Tensor`, şekli `(batch_size, seq_length, num_input_channels)`) : Zaman serisinin bağlam değerleri. Ön eğitim görevi için, maskelenmiş kısmı tahmin etmek üzere girdi olarak kullanılan zaman serisini ifade eder. Tahmin görevi için, geçmiş/geçmiş zaman serisi değerlerini ifade eder. Benzer şekilde, sınıflandırma veya regresyon görevleri için, zaman serisinin uygun bağlam değerlerini ifade eder. Tek değişkenli zaman serileri için `num_input_channels` boyutu 1 olmalıdır. Çok değişkenli zaman serileri için 1'den büyüktür.

observed_mask (`torch.Tensor`, şekli `(batch_size, sequence_length, num_input_channels)`, *isteğe bağlı*) : Hangi `past_values`'lerin gözlemlendiğini ve hangilerinin eksik olduğunu belirtmek için Boolean maske. `[0, 1]` aralığında seçilen maske değerleri: - **gözlemlenen** değerler için 1, - **eksik** değerler için 0 (yani sıfırlarla değiştirilen NaN'lar).

future_values (`torch.Tensor`, şekli tahmin için `(batch_size, target_len, num_input_channels)`, regresyon için `(batch_size, num_targets)` veya sınıflandırma için `(batch_size,)`, *isteğe bağlı*): Zaman serisinin, model için etiket olarak hizmet veren hedef değerleri. `future_values`, Transformer'ın eğitim sırasında `past_values` verildiğinde çıktı olarak öğrenmesi gereken şeydir. Dikkat edin, bu bir ön eğitim görevi için gerekli DEĞİLDİR. Tahmin görevi için şekil `(batch_size, target_len, num_input_channels)` olmalıdır. `prediction_channel_indices` parametresindeki indeksleri ayarlayarak yalnızca belirli kanalları tahmin etmek isteseniz bile, kanal filtrelemesi hem tahmin hem de hedef için kayıp hesabından önce manuel olarak uygulanacağından, hedef veriyi tüm kanallarla birlikte iletin.

output_hidden_states (`bool`, *isteğe bağlı*) : Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `hidden_states` bölümüne bakın.

return_loss (`bool`,  *isteğe bağlı*) : `forward` çağrısında kaybın (loss) döndürülüp döndürülmeyeceğini belirtir.

**Dönüş:** `PatchTSMixerForPredictionOutput` veya `tuple(torch.Tensor)`

A `PatchTSMixerForPredictionOutput` veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırma ([PatchTSMixerConfig](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[PatchTSMixerForPrediction](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerForPrediction) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **loss** (`*optional*`, `y` sağlandığında döndürülür, `torch.Tensor`, şekli `()`) -- Toplam kayıp.
- **prediction_outputs** (`torch.Tensor`, şekli `(batch_size, prediction_length, num_input_channels)`) -- Tahmin başından gelen tahmin çıktısı.
- **last_hidden_state** (`torch.Tensor`, şekli `(batch_size, num_input_channels, num_patches, d_model)`) -- Head üzerinden geçirilmeden önceki backbone gömme değerleri.
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*) -- Modelin her katmanının çıktısındaki gizli durumlar ve isteğe bağlı başlangıç gömme çıktıları.
- **loc** (`torch.Tensor`, *isteğe bağlı*, şekli `(batch_size, 1, num_input_channels)`) -- Girdi ortalaması
- **scale** (`torch.Tensor`, *isteğe bağlı*, şekli `(batch_size, 1, num_input_channels)`) -- Girdi standart sapması

## PatchTSMixerForTimeSeriesClassification[[transformers.PatchTSMixerForTimeSeriesClassification]]

#### transformers.PatchTSMixerForTimeSeriesClassification[[transformers.PatchTSMixerForTimeSeriesClassification]]

```python
transformers.PatchTSMixerForTimeSeriesClassification(config: PatchTSMixerConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/patchtsmixer/modeling_patchtsmixer.py#L1707)

**Parametreler:**

config (`PatchTSMixerConfig`) : Yapılandırma.

**Dönüş:**

`None`.

Sınıflandırma uygulaması için `PatchTSMixer`.

#### forward[[transformers.PatchTSMixerForTimeSeriesClassification.forward]]

```python
forward(past_values: Tensor, target_values: typing.Optional[torch.Tensor] = None, output_hidden_states: bool | None = None, return_loss: bool = True, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/patchtsmixer/modeling_patchtsmixer.py#L1734)

**Parametreler:**

past_values (`torch.Tensor`, şekli `(batch_size, seq_length, num_input_channels)`) : Zaman serisinin bağlam değerleri. Ön eğitim görevi için, maskelenmiş kısmı tahmin etmek üzere girdi olarak kullanılan zaman serisini ifade eder. Tahmin görevi için, geçmiş/geçmiş zaman serisi değerlerini ifade eder. Benzer şekilde, sınıflandırma veya regresyon görevleri için, zaman serisinin uygun bağlam değerlerini ifade eder. Tek değişkenli zaman serileri için `num_input_channels` boyutu 1 olmalıdır. Çok değişkenli zaman serileri için 1'den büyüktür.

target_values (`torch.Tensor`, tahmin için biçimi `(batch_size, target_len, num_input_channels)`, regresyon için `(batch_size, num_targets)` veya sınıflandırma için `(batch_size,)`, *isteğe bağlı*): Zaman serisinin, model için etiket olarak hizmet veren hedef değerleri. `target_values`, Transformer'ın eğitim sırasında `past_values` verildiğinde çıkarmayı öğrenmesi gereken şeydir. Dikkat edin, bu bir ön eğitim görevi için gerekli DEĞİLDİR. Tahmin görevi için biçim `(batch_size, target_len, num_input_channels)` olmalıdır. `prediction_channel_indices` parametresindeki dizinleri ayarlayarak yalnızca belirli kanalları tahmin etmek isteseniz bile, kanal filtrelemesi hem tahmin hem de hedef için kayıp hesabından önce manuel olarak uygulanacağından, hedef veriyi tüm kanallarla birlikte iletin. Sınıflandırma görevi için biçimi `(batch_size,)`'dir. Regresyon görevi için biçimi `(batch_size, num_targets)`'dir.

output_hidden_states (`bool`, *isteğe bağlı*) : Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `hidden_states` bölümüne bakın.

return_loss (`bool`, *isteğe bağlı*) : `forward` çağrısında kaybın (loss) döndürülüp döndürülmeyeceğini belirtir.

**Dönüş:** `PatchTSMixerForTimeSeriesClassificationOutput` veya `tuple(torch.Tensor)`

`PatchTSMixerForTimeSeriesClassificationOutput` veya bir `torch.Tensor` demeti (`return_dict=False` geçirildiğinde veya `config.return_dict=False` olduğunda), yapılandırma ([PatchTSMixerConfig](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[PatchTSMixerForTimeSeriesClassification](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerForTimeSeriesClassification) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **loss** (`*optional*`, `y` sağlandığında döndürülür, `torch.Tensor`, şekli `()`) -- Toplam kayıp.
- **prediction_outputs** (`torch.Tensor`, şekli `(batch_size, num_labels)`) -- Sınıflandırma başlığından gelen tahmin çıktısı.
- **last_hidden_state** (`torch.Tensor`, şekli `(batch_size, num_input_channels, num_patches, d_model)`) -- Head üzerinden geçirilmeden önceki backbone gömme değerleri.
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*) -- Modelin her katmanının çıktısındaki gizli durumlar ve isteğe bağlı başlangıç gömme çıktıları.

## PatchTSMixerForPretraining[[transformers.PatchTSMixerForPretraining]]

#### transformers.PatchTSMixerForPretraining[[transformers.PatchTSMixerForPretraining]]

```python
transformers.PatchTSMixerForPretraining(config: PatchTSMixerConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/patchtsmixer/modeling_patchtsmixer.py#L1313)

**Parametreler:**

config ([PatchTSMixerConfig](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

Mask ön eğitimi için `PatchTSMixer`.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.PatchTSMixerForPretraining.forward]]

```python
forward(past_values: Tensor, observed_mask: typing.Optional[torch.Tensor] = None, output_hidden_states: bool | None = None, return_loss: bool = True, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/patchtsmixer/modeling_patchtsmixer.py#L1323)

**Parametreler:**

past_values (`torch.Tensor`, şekli `(batch_size, seq_length, num_input_channels)`) : Zaman serisinin bağlam değerleri. Ön eğitim görevi için, maskelenmiş kısmı tahmin etmek üzere girdi olarak kullanılan zaman serisini ifade eder. Tahmin görevi için, geçmiş/geçmiş zaman serisi değerlerini ifade eder. Benzer şekilde, sınıflandırma veya regresyon görevleri için, zaman serisinin uygun bağlam değerlerini ifade eder. Tek değişkenli zaman serileri için `num_input_channels` boyutu 1 olmalıdır. Çok değişkenli zaman serileri için 1'den büyüktür.

observed_mask (`torch.Tensor`, şekli `(batch_size, sequence_length, num_input_channels)`, *isteğe bağlı*) : Hangi `past_values`'lerin gözlemlendiğini ve hangilerinin eksik olduğunu belirtmek için Boolean maske. `[0, 1]` aralığında seçilen maske değerleri: - **gözlemlenen** değerler için 1, - **eksik** değerler için 0 (yani sıfırlarla değiştirilen NaN'lar).

output_hidden_states (`bool`, *isteğe bağlı*) : Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `hidden_states` bölümüne bakın.

return_loss (`bool`,  *isteğe bağlı*) : `forward` çağrısında kaybın (loss) döndürülüp döndürülmeyeceğini belirtir.

**Dönüş:** `PatchTSMixerForPreTrainingOutput` veya `tuple(torch.Tensor)`

A `PatchTSMixerForPreTrainingOutput` veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırma ([PatchTSMixerConfig](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[PatchTSMixerForPretraining](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerForPretraining) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **loss** (`*optional*`, `y` sağlandığında döndürülür, `torch.Tensor`, şekli `()`) -- Toplam kayıp
- **prediction_outputs** (`torch.Tensor`, şekli `(batch_size, num_input_channels, num_patches, patch_length)`) -- Ön eğitim başlığından gelen tahmin çıktısı.
- **last_hidden_state** (`torch.Tensor`, şekli `(batch_size, num_input_channels, num_patches, d_model)`) -- Head üzerinden geçirilmeden önceki backbone gömme değerleri.
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*) -- Modelin her katmanının çıktısındaki gizli durumları.

## PatchTSMixerForRegression[[transformers.PatchTSMixerForRegression]]

#### transformers.PatchTSMixerForRegression[[transformers.PatchTSMixerForRegression]]

```python
transformers.PatchTSMixerForRegression(config: PatchTSMixerConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/patchtsmixer/modeling_patchtsmixer.py#L1875)

**Parametreler:**

config ([PatchTSMixerConfig](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

Regresyon uygulaması için `PatchTSMixer`.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.PatchTSMixerForRegression.forward]]

```python
forward(past_values: Tensor, target_values: typing.Optional[torch.Tensor] = None, output_hidden_states: bool | None = None, return_loss: bool = True, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/patchtsmixer/modeling_patchtsmixer.py#L1913)

**Parametreler:**

past_values (`torch.Tensor`, şekli `(batch_size, seq_length, num_input_channels)`) : Zaman serisinin bağlam değerleri. Ön eğitim görevi için, maskelenmiş kısmı tahmin etmek üzere girdi olarak kullanılan zaman serisini ifade eder. Tahmin görevi için, geçmiş/geçmiş zaman serisi değerlerini ifade eder. Benzer şekilde, sınıflandırma veya regresyon görevleri için, zaman serisinin uygun bağlam değerlerini ifade eder. Tek değişkenli zaman serileri için `num_input_channels` boyutu 1 olmalıdır. Çok değişkenli zaman serileri için 1'den büyüktür.

target_values (`torch.Tensor`, tahmin için biçimi `(batch_size, target_len, num_input_channels)`, regresyon için `(batch_size, num_targets)` veya sınıflandırma için `(batch_size,)`, *isteğe bağlı*): Zaman serisinin, model için etiket olarak hizmet veren hedef değerleri. `target_values`, Transformer'ın eğitim sırasında `past_values` verildiğinde çıkarmayı öğrenmesi gereken şeydir. Dikkat edin, bu bir ön eğitim görevi için gerekli DEĞİLDİR. Tahmin görevi için biçim `(batch_size, target_len, num_input_channels)` olmalıdır. `prediction_channel_indices` parametresindeki dizinleri ayarlayarak yalnızca belirli kanalları tahmin etmek isteseniz bile, kanal filtrelemesi hem tahmin hem de hedef için kayıp hesabından önce manuel olarak uygulanacağından, hedef veriyi tüm kanallarla birlikte iletin. Sınıflandırma görevi için biçimi `(batch_size,)`'dir. Regresyon görevi için biçimi `(batch_size, num_targets)`'dir.

output_hidden_states (`bool`, *isteğe bağlı*) : Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `hidden_states` bölümüne bakın.

return_loss (`bool`, *isteğe bağlı*) : `forward` çağrısında kaybın (loss) döndürülüp döndürülmeyeceğini belirtir.

**Dönüş:** `PatchTSMixerForRegressionOutput` veya `tuple(torch.Tensor)`

A `PatchTSMixerForRegressionOutput` veya bir `torch.Tensor` demeti (`return_dict=False` geçirildiğinde veya `config.return_dict=False` olduğunda), yapılandırma ([PatchTSMixerConfig](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[PatchTSMixerForRegression](/docs/transformers/main/tr/model_doc/patchtsmixer#transformers.PatchTSMixerForRegression) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **loss** (`*optional*`, `y` sağlandığında döndürülür, `torch.Tensor`, şekli `()`) -- Toplam kayıp.
- **regression_outputs** (`torch.Tensor`, şekli `(batch_size, num_targets)`) -- Regresyon başından gelen tahmin çıktısı.
- **last_hidden_state** (`torch.Tensor`, şekli `(batch_size, num_input_channels, num_patches, d_model)`) -- Head üzerinden geçirilmeden önceki backbone gömme değerleri.
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*) -- Modelin her katmanının çıktısındaki gizli durumlar ve isteğe bağlı başlangıç gömme çıktıları.

