Transformers documentation
PatchTST
Bu model 2022-11-27 tarihinde HF papers'ta yayımlanmış ve 2023-11-13 tarihinde Hugging Face Transformers'a katkıda bulunmuştur.
PatchTST
Genel Bakış
PatchTST modeli, Yuqi Nie, Nam H. Nguyen, Phanwadee Sinthong ve Jayant Kalagnanam tarafından A Time Series is Worth 64 Words: Long-term Forecasting with Transformers makalesinde önerilmiştir.
Genel hatlarıyla model, zaman serilerini belirli bir boyutta yamalar (patch) halinde vektörleştirir ve bu vektör dizisini bir Transformer ile kodlar; ardından uygun bir başlık (head) aracılığıyla tahmin uzunluğundaki öngörüyü üretir. Model aşağıdaki şekilde gösterilmektedir:
Makalenin özeti aşağıdaki gibidir:
Çok değişkenli zaman serisi tahmini ve kendiliğinden denetimli temsil öğrenimi için Transformer tabanlı modellerin verimli bir tasarımını öneriyoruz. Bu tasarım iki temel bileşene dayanmaktadır: (i) zaman serilerinin, Transformer'a girdi token'ları olarak sunulan alt seri düzeyinde yamalar (patch) halinde segmente edilmesi; (ii) kanal bağımsızlığı, burada her kanal tek bir değişkenli zaman serisi içerir ve tüm seriler arasında aynı gömme (embedding) ve Transformer ağırlıklarını paylaşır. Yamalama (patching) tasarımı doğal olarak üç katlı bir fayda sağlar: yerel semantik bilgi gömmede korunur; aynı geriye bakma penceresi (look-back window) verildiğinde dikkat haritalarının (attention maps) hesaplama ve bellek kullanımı karesel olarak azaltılır; ve model daha uzun geçmişe odaklanabilir. Kanal bağımsız yamalı zaman serisi Transformer'ımız (PatchTST), SOTA Transformer tabanlı modellere kıyasla uzun vadeli tahmin doğruluğunu önemli ölçüde artırabilir. Modelimizi kendiliğinden denetimli ön eğitim görevlerine de uyguluyor ve büyük veri setlerinde denetimli eğitimi geride bırakan mükemmel ince ayar (fine-tuning) performansı elde ediyoruz. Bir veri setinde maskeli ön eğitimli temsilin diğer veri setlerine aktarılması da SOTA tahmin doğruluğu üretmektedir.
Bu model namctin, gsinthong, diepi, vijaye12, wmgifford ve kashif tarafından katkıda bulunmuştur. Orijinal kod burada bulunabilir.
Kullanım ipuçları
Model, zaman serisi sınıflandırma ve zaman serisi regresyon için de kullanılabilir. İlgili PatchTSTForClassification ve PatchTSTForRegression sınıflarına bakın.
Kaynaklar
- PatchTST'yi derinlemesine açıklayan bir blog yazısı burada bulunabilir. Blog, Google Colab'ta da açılabilir.
PatchTSTConfig
sınıf transformers.PatchTSTConfig
< 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 = Nonenum_input_channels: int = 1context_length: int = 32distribution_output: str = 'student_t'loss: str | None = 'mse'patch_length: int = 1patch_stride: int = 1num_hidden_layers: int = 3d_model: int = 128num_attention_heads: int = 4share_embedding: bool = Truechannel_attention: bool = Falseffn_dim: int = 512norm_type: str = 'batchnorm'norm_eps: float = 1e-05attention_dropout: float | int = 0.0positional_dropout: float | int = 0.0path_dropout: float | int = 0.0ff_dropout: float | int = 0.0bias: bool = Trueactivation_function: str = 'gelu'pre_norm: bool = Truepositional_encoding_type: str = 'sincos'use_cls_token: bool = Falseinit_std: float = 0.02share_projection: bool = Truescaling: str | bool | None = 'std'do_mask_input: bool | None = Nonemask_type: str = 'random'random_mask_ratio: float = 0.5num_forecast_mask_patches: list[int] | tuple[int, ...] | int | None = (2,)channel_consistent_masking: bool | None = Falseunmasked_channel_indices: list[int] | None = Nonemask_value: int = 0pooling_type: str | None = 'mean'head_dropout: float | int = 0.0prediction_length: int = 24num_targets: int = 1output_range: list | None = Nonenum_parallel_samples: int = 100 )
Parametreler
- num_input_channels (
int, isteğe bağlı, varsayılan1) — Giriş kanal sayısı. - context_length (
int, isteğe bağlı, varsayılan 32) — Girdi dizisinin bağlam uzunluğu. - distribution_output (
str, isteğe bağlı, varsayılan"student_t") — Kayıp “nll” olduğunda modelin dağıtım emisyon başlığı. “student_t”, “normal” veya “negative_binomial” olabilir. - loss (
str, isteğe bağlı, varsayılan"mse") —distribution_outputbaş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”. - patch_length (
int, isteğe bağlı, varsayılan 1) — Patchification sürecinin yama uzunluğunu tanımlar. - patch_stride (
int, isteğe bağlı, varsayılan 1) — Patchification sürecinin stride değerini tanımlar. - num_hidden_layers (
int, isteğe bağlı, varsayılan3) — Transformer decoder'ındaki gizli katman sayısı. - d_model (
int, isteğe bağlı, varsayılan128) — Kodlayıcı katmanlarının ve pooler katmanının boyutu. - num_attention_heads (
int, isteğe bağlı, varsayılan 4) — Transformer kodlayıcısındaki her dikkat katmanı için dikkat başı sayısı. - share_embedding (
bool, isteğe bağlı, varsayılanTrue) — Girdi gömme katmanının tüm kanallar arasında paylaşılması. - channel_attention (
bool, isteğe bağlı, varsayılanFalse) — Transformer'da kanal dikkat bloğunu etkinleştirerek kanalların birbirine dikkat etmesine olanak tanır. - ffn_dim (
int, isteğe bağlı, varsayılan 512) — Transformer kodlayıcısında “ara” (genellikle feed-forward olarak adlandırılan) katmanın boyutu. - norm_type (
str, isteğe bağlı, varsayılan"batchnorm") — Her Transformer katmanında normalizasyon."batchnorm"veya"layernorm"olabilir. - norm_eps (
float, isteğe bağlı, varsayılan 1e-05) — Normalizasyonun sayısal kararlılığı için paydaya eklenen değer. - attention_dropout (
Union[float, int], isteğe bağlı, varsayılan0.0) — Dikkat olasılıkları için dropout oranı. - positional_dropout (
float, isteğe bağlı, varsayılan 0.0) — Konumsal gömme katmanındaki dropout olasılığı. - path_dropout (
float, isteğe bağlı, varsayılan 0.0) — Artık blokta dropout yolu. - ff_dropout (
float, isteğe bağlı, varsayılan 0.0) — İleri beslemeli ağların iki katmanı arasında kullanılan dropout olasılığı. - bias (
bool, isteğe bağlı, varsayılanTrue) — İleri beslemeli ağlara bias eklenip eklenmeyeceğini belirtir. - activation_function (
str, isteğe bağlı, varsayılan"gelu") — Transformer'daki doğrusal olmayan aktivasyon fonksiyonu (dize)."gelu"ve"relu"desteklenir. - pre_norm (
bool, isteğe bağlı, varsayılanTrue) —Trueolarak ayarlandığında, normalizasyon self-attention'dan önce uygulanır. Aksi halde, normalizasyon residual bloktan sonra uygulanır. - positional_encoding_type (
str, isteğe bağlı, varsayılan"sincos") — Konumsal kodlamalar."random"ve"sincos"seçenekleri desteklenir. - use_cls_token (
bool, isteğe bağlı, varsayılanFalse) — cls token kullanılıp kullanılmadığı. - init_std (
float, isteğe bağlı, varsayılan 0.02) — Kesilmiş normal ağırlık başlatma dağılımının standart sapması. - share_projection (
bool, isteğe bağlı, varsayılanTrue) — Tahmin başlığında projeksiyon katmanının farklı kanallar arasında paylaşılması. - scaling (
Union, isteğe bağlı, varsayılan"std") —Noneise girdi hedeflerinin “mean” ölçekleyici, “std” ölçekleyici veya ölçekleyici olmadan ölçeklenip ölçeklenmeyeceğini belirtir.Trueise ölçekleyici “mean” olarak ayarlanır. - do_mask_input (
bool, isteğe bağlı) — Ön eğitim sırasında maskeleme uygulayın. - mask_type (
str, isteğe bağlı, varsayılan"random") — Maskelendirme türü. Şu anda yalnızca"random"ve"forecast"desteklenmektedir. - random_mask_ratio (
float, isteğe bağlı, varsayılan 0.5) — Rastgele ön eğitim sırasında girdi verilerini maskelemek için uygulanan maskeleme oranı. - num_forecast_mask_patches (
intveyalist, 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 maskelenir. Bu argüman yalnızca tahmin ön eğitimi için kullanılır. - channel_consistent_masking (
bool, isteğe bağlı, varsayılanFalse) — Kanal tutarlı maskelama True ise, tüm kanallar aynı maskelama desenine sahip olur. - unmasked_channel_indices (
list, isteğe bağlı) — Ön eğitim sırasında maskelenmeyen kanalların indeksleri. Listedeki değerler, 1 ilenum_input_channelsarasında sayılardır. - mask_value (
int, isteğe bağlı, varsayılan 0) — Maskeleme yapılan yamaktaki değerlermask_valueile doldurulur. - pooling_type (
str, isteğe bağlı, varsayılan"mean") — Gömme (embedding) birleştirme (pooling) yöntemi."mean","max"veNonedesteklenir. - head_dropout (
float, isteğe bağlı, varsayılan 0.0) — Head için dropout olasılığı. - prediction_length (
int, isteğe bağlı, varsayılan 24) — Modelin üreteceği tahmin ufku. - num_targets (
int, isteğe bağlı, varsayılan 1) — Regresyon ve sınıflandırma görevleri için hedef sayısı. Sınıflandırma durumunda, sınıf sayısıdır. - output_range (
list, isteğe bağlı) — Dönüşüm görevi için çıktı aralığı. Modelin belirli bir aralık içinde değerler üretmesini sağlamak için çıktı değerlerinin aralığı ayarlanabilir. - num_parallel_samples (
int, isteğe bağlı, varsayılan 100) — Olasılıksal tahmin için paralel olarak üretilen örnek sayısı.
Bu, bir PatchTSTModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Patchtst modelinin örneklenmesi ve model mimarisinin tanımlanması için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, ibm-granite/granite-timeseries-patchtst ile benzer bir yapılandırma elde edilir.
Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.
>>> from transformers import PatchTSTConfig, PatchTSTModel
>>> # Initializing an PatchTST configuration with 12 time steps for prediction
>>> configuration = PatchTSTConfig(prediction_length=12)
>>> # Randomly initializing a model (with random weights) from the configuration
>>> model = PatchTSTModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configPatchTSTModel
sınıf transformers.PatchTSTModel
< source >( config: PatchTSTConfig )
Parametreler
- config (PatchTSTConfig) — 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() yöntemine bakın.
Üzerinde herhangi bir özel head olmadan ham hidden-state çıktısı üreten çıplak Patchtst Model.
Bu model 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 boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch 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
< source >( past_values: Tensorpast_observed_mask: typing.Optional[torch.Tensor] = Nonefuture_values: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs )
Parametreler
- past_values (
torch.Tensor, şekli(bs, sequence_length, num_input_channels), zorunlu) — Modelin girdi dizisi - past_observed_mask (
torch.BoolTensorşeklinde(batch_size, sequence_length, num_input_channels), isteğe bağlı) — Hangipast_valuesdeğerlerin gözlemlendiğini, hangilerinin eksik olduğunu belirtmek için Boolean mask. Mask değerleri[0, 1]:- gözlemlenen değerler için 1
- eksik (yani sıfırlarla değiştirilen NaN'lar) olan değerler için 0.
- future_values (
torch.BoolTensor, şekli(batch_size, prediction_length, num_input_channels), isteğe bağlı) —past_valuesile ilişkili gelecek hedef değerleri - output_hidden_states (
bool, isteğe bağlı) — Tüm katmanların gizli durumlarının döndürülüp döndürülmeyeceği - output_attentions (
bool, isteğe bağlı) — Tüm katmanların çıktı dikkatlerini döndürüp döndürmeyeceği - return_dict (
bool, isteğe bağlı) — Düz bir tuple yerineModelOutputdöndürülecek mi?
Örnekler:
>>> from huggingface_hub import hf_hub_download
>>> import torch
>>> from transformers import PatchTSTModel
>>> file = hf_hub_download(
... repo_id="hf-internal-testing/etth1-hourly-batch", filename="train-batch.pt", repo_type="dataset"
... )
>>> batch = torch.load(file)
>>> model = PatchTSTModel.from_pretrained("namctin/patchtst_etth1_pretrain")
>>> # during training, one provides both past and future values
>>> outputs = model(
... past_values=batch["past_values"],
... future_values=batch["future_values"],
... )
>>> last_hidden_state = outputs.last_hidden_statePatchTSTForPrediction
sınıf transformers.PatchTSTForPrediction
< source >( config: PatchTSTConfig )
Parametreler
- config (PatchTSTConfig) — 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() yöntemine bakın.
Tahmin modeli için PatchTST.
Bu model 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 boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch 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
< source >( past_values: Tensorpast_observed_mask: typing.Optional[torch.Tensor] = Nonefuture_values: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs )
Parametreler
- past_values (
torch.Tensor, şekli(bs, sequence_length, num_input_channels), zorunlu) — Modelin girdi dizisi - past_observed_mask (
torch.BoolTensorşeklinde(batch_size, sequence_length, num_input_channels), isteğe bağlı) — Hangipast_valuesdeğerlerin gözlemlendiğini, hangilerinin eksik olduğunu belirtmek için Boolean mask. Mask değerleri[0, 1]:- gözlemlenen değerler için 1
- eksik (yani sıfırlarla değiştirilen NaN'lar) olan değerler için 0.
- future_values (
torch.Tensor, şekli(bs, forecast_len, num_input_channels), isteğe bağlı) —past_valuesile ilişkili gelecek hedef değerleri - output_hidden_states (
bool, isteğe bağlı) — Tüm katmanların gizli durumlarının döndürülüp döndürülmeyeceği - output_attentions (
bool, isteğe bağlı) — Tüm katmanların çıktı dikkatlerini döndürüp döndürmeyeceği - return_dict (
bool, isteğe bağlı) — Düz bir tuple yerineModelOutputdöndürülecek mi?
Örnekler:
>>> from huggingface_hub import hf_hub_download
>>> import torch
>>> from transformers import PatchTSTConfig, PatchTSTForPrediction
>>> file = hf_hub_download(
... repo_id="hf-internal-testing/etth1-hourly-batch", filename="train-batch.pt", repo_type="dataset"
... )
>>> batch = torch.load(file)
>>> # Prediction task with 7 input channels and prediction length is 96
>>> model = PatchTSTForPrediction.from_pretrained("namctin/patchtst_etth1_forecast")
>>> # during training, one provides both past and future values
>>> outputs = model(
... past_values=batch["past_values"],
... future_values=batch["future_values"],
... )
>>> loss = outputs.loss
>>> loss.backward()
>>> # during inference, one only provides past values, the model outputs future values
>>> outputs = model(past_values=batch["past_values"])
>>> prediction_outputs = outputs.prediction_outputsPatchTSTForClassification
sınıf transformers.PatchTSTForClassification
< source >( config: PatchTSTConfig )
Parametreler
- config (PatchTSTConfig) — 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() yöntemine bakın.
Sınıflandırma için PatchTST modeli.
Bu model 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 boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch 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
< source >( past_values: Tensortarget_values: typing.Optional[torch.Tensor] = Nonepast_observed_mask: bool | None = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → PatchTSTForClassificationOutput or tuple(torch.Tensor)
Parametreler
- past_values (
torch.Tensor, şekli(bs, sequence_length, num_input_channels), zorunlu) — Modelin girdi dizisi - target_values (
torch.Tensor, isteğe bağlı) —past_valuesile ilişkilendirilen etiketler - past_observed_mask (
torch.BoolTensorşeklinde(batch_size, sequence_length, num_input_channels), isteğe bağlı) — Hangipast_valuesdeğerlerin gözlemlendiğini, hangilerinin eksik olduğunu belirtmek için Boolean mask. Mask değerleri[0, 1]:- gözlemlenen değerler için 1
- eksik (yani sıfırlarla değiştirilen NaN'lar) olan değerler için 0.
- 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ındakihidden_statesbölümüne bakın. - output_attentions (
bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındakiattentionsbölümüne bakın. - return_dict (
bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?
Dönüş değeri
PatchTSTForClassificationOutput veya tuple(torch.Tensor)
PatchTSTForClassificationOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (PatchTSTConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
PatchTSTForClassification sınıfının 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ü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
*optional*,labelssağlandığında döndürülür,(1,)biçimindetorch.Tensor) — Maskeli dil modelleme kaybı ile sonraki sıra tahmin (sınıflandırma) kaybının toplamı olarak toplam kayıp.prediction_logits (
torch.Tensor, şekli(batch_size, num_targets)) — PatchTST modelleme başlığının tahmin puanları (SoftMax öncesi puanlar).hidden_states (
tuple[torch.Tensor], isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple[torch.Tensor], isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnekler:
>>> from transformers import PatchTSTConfig, PatchTSTForClassification
>>> # classification task with two input channel2 and 3 classes
>>> config = PatchTSTConfig(
... num_input_channels=2,
... num_targets=3,
... context_length=512,
... patch_length=12,
... stride=12,
... use_cls_token=True,
... )
>>> model = PatchTSTForClassification(config=config)
>>> # during inference, one only provides past values
>>> past_values = torch.randn(20, 512, 2)
>>> outputs = model(past_values=past_values)
>>> labels = outputs.prediction_logitsPatchTSTForPretraining
sınıf transformers.PatchTSTForPretraining
< source >( config: PatchTSTConfig )
Parametreler
- config (PatchTSTConfig) — 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() yöntemine bakın.
Ön eğitim modeli için PatchTST.
Bu model 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 boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch 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
< source >( past_values: Tensorpast_observed_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs )
Parametreler
- past_values (
torch.Tensor, şekli(bs, sequence_length, num_input_channels), zorunlu) — Modelin girdi dizisi - past_observed_mask (
torch.BoolTensorşeklinde(batch_size, sequence_length, num_input_channels), isteğe bağlı) — Hangipast_valuesdeğerlerin gözlemlendiğini, hangilerinin eksik olduğunu belirtmek için Boolean mask. Mask değerleri[0, 1]:- gözlemlenen değerler için 1
- eksik (yani sıfırlarla değiştirilen NaN'lar) olan değerler için 0.
- output_hidden_states (
bool, isteğe bağlı) — Tüm katmanların gizli durumlarının döndürülüp döndürülmeyeceği - output_attentions (
bool, isteğe bağlı) — Tüm katmanların çıktı dikkatlerini döndürüp döndürmeyeceği - return_dict (
bool, isteğe bağlı) — Düz bir tuple yerineModelOutputdöndürülecek mi?
Örnekler:
>>> from huggingface_hub import hf_hub_download
>>> import torch
>>> from transformers import PatchTSTConfig, PatchTSTForPretraining
>>> file = hf_hub_download(
... repo_id="hf-internal-testing/etth1-hourly-batch", filename="train-batch.pt", repo_type="dataset"
... )
>>> batch = torch.load(file)
>>> # Config for random mask pretraining
>>> config = PatchTSTConfig(
... num_input_channels=7,
... context_length=512,
... patch_length=12,
... stride=12,
... mask_type='random',
... random_mask_ratio=0.4,
... use_cls_token=True,
... )
>>> # Config for forecast mask pretraining
>>> config = PatchTSTConfig(
... num_input_channels=7,
... context_length=512,
... patch_length=12,
... stride=12,
... mask_type='forecast',
... num_forecast_mask_patches=5,
... use_cls_token=True,
... )
>>> model = PatchTSTForPretraining(config)
>>> # during training, one provides both past and future values
>>> outputs = model(past_values=batch["past_values"])
>>> loss = outputs.loss
>>> loss.backward()PatchTSTForRegression
sınıf transformers.PatchTSTForRegression
< source >( config: PatchTSTConfig )
Parametreler
- config (PatchTSTConfig) — 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() yöntemine bakın.
Dönüşüm için PatchTST modeli.
Bu model 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 boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch 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
< source >( past_values: Tensortarget_values: typing.Optional[torch.Tensor] = Nonepast_observed_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → PatchTSTForRegressionOutput or tuple(torch.Tensor)
Parametreler
- past_values (
torch.Tensor, şekli(bs, sequence_length, num_input_channels), zorunlu) — Modelin girdi dizisi - target_values (
torch.Tensor, şekli(bs, num_input_channels)) —past_valuesile ilişkilendirilen hedef değerler - past_observed_mask (
torch.BoolTensorşeklinde(batch_size, sequence_length, num_input_channels), isteğe bağlı) — Hangipast_valuesdeğerlerin gözlemlendiğini, hangilerinin eksik olduğunu belirtmek için Boolean maskesi. Maskenin değerleri[0, 1]:- gözlemlenen değerler için 1
- eksik (yani sıfırlarla değiştirilen NaN'lar) olan değerler için 0.
Düz bir tuple yerine
ModelOutputdöndürülecek mi.
- 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ındakihidden_statesbölümüne bakın. - output_attentions (
bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındakiattentionsbölümüne bakın. - return_dict (
bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?
Dönüş değeri
PatchTSTForRegressionOutput veya tuple(torch.Tensor)
PatchTSTForRegressionOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (PatchTSTConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
PatchTSTForRegression 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ü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
*optional*,labelssağlandığında döndürülür,torch.Tensor, şekli(1,)) — MSE kaybı.regression_outputs (
torch.Tensor, şekli(batch_size, num_targets)) — Zaman serisi modelleme başlıklarının regresyon çıktıları.hidden_states (
tuple[torch.Tensor], isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple[torch.Tensor], isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnekler:
>>> from transformers import PatchTSTConfig, PatchTSTForRegression
>>> # Regression task with 6 input channels and regress 2 targets
>>> model = PatchTSTForRegression.from_pretrained("namctin/patchtst_etth1_regression")
>>> # during inference, one only provides past values, the model outputs future values
>>> past_values = torch.randn(20, 512, 6)
>>> outputs = model(past_values=past_values)
>>> regression_outputs = outputs.regression_outputs