Transformers documentation

Optimizasyon

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Optimizasyon

.optimization modülü şunları sağlar:

  • ağırlık çürümesi sabitlenmiş, ince ayar yapılmış modellerde kullanılabilen bir optimizör ve
  • _LRSchedule'dan devralan schedule nesneleri biçiminde birkaç zamanlama:
  • birden çok batch'in gradyanlarını biriktirmek için bir gradyan biriktirme sınıfı

AdaFactor

sınıf transformers.Adafactor

< >

( paramslr = Noneeps = (1e-30, 0.001)clip_threshold = 1.0decay_rate = -0.8beta1 = Noneweight_decay = 0.0scale_parameter = Truerelative_step = Truewarmup_init = False )

Parametreler

  • params (Iterable[nn.parameter.Parameter]) — Optimize edilecek parametrelerin veya parametre gruplarını tanımlayan sözlüklerin iterable'ı.
  • lr (float, isteğe bağlı) — Dış öğrenme oranı.
  • eps (tuple[float, float], isteğe bağlı, varsayılan (1e-30, 0.001)) — Sırasıyla kare gradyan ve parametre ölçeği için düzenleme sabitleri
  • clip_threshold (float, isteğe bağlı, varsayılan 1.0) — Son gradyan güncellemesinin karekök ortalama kare (RMS) eşiği
  • decay_rate (float, isteğe bağlı, varsayılan -0.8) — Karelerin hareketli ortalamalarının hesaplanmasında kullanılan katsayı
  • beta1 (float, isteğe bağlı) — Gradyanların hareketli ortalamalarının hesaplanmasında kullanılan katsayı
  • weight_decay (float, isteğe bağlı, varsayılan 0.0) — Ağırlık çürümesi (L2 cezası)
  • scale_parameter (bool, isteğe bağlı, varsayılan True) — True ise, öğrenme hızı karekök ortalama kare ile ölçeklenir
  • relative_step (bool, isteğe bağlı, varsayılan True) — True ise, harici öğrenme hızı yerine zamana bağlı öğrenme hızı hesaplanır
  • warmup_init (bool, isteğe bağlı, varsayılan False) — Zamana bağlı öğrenme oranı hesabı, ısınma başlatmasının kullanılıp kullanılmadığına bağlıdır

AdaFactor pytorch uygulaması, Adam'ın orijinal fairseq kodunun yerini alacak şekilde kullanılabilir: https://github.com/pytorch/fairseq/blob/master/fairseq/optim/adafactor.py

Makale: Adafactor: Adaptive Learning Rates with Sublinear Memory Cost https://huggingface.co/papers/1804.04235 Bu optimizörün, scale_parameter, relative_step ve warmup_init seçeneklerine bağlı olarak öğrenme hızını içsel olarak ayarladığını unutmayın. Manuel (dış) bir öğrenme hızı zamanlaması kullanmak için scale_parameter=False ve relative_step=False değerlerini ayarlamanız gerekir.

Bu uygulama, düşük hassasiyetli (FP16, bfloat) değerleri işler, ancak kapsamlı bir şekilde test edilmemiştir.

Önerilen T5 ince ayar ayarları (https://discuss.huggingface.co/t/t5-finetuning-tips/684/3):

  • LR warmup veya clip_threshold olmadan eğitim önerilmez.

  • Göreceli güncellemeleri devre dışı bırak

  • scale_parameter=False kullanın

  • Adafactor ile birlikte gradyan kırpma gibi ek optimizör işlemleri kullanılmamalıdır

Örnek:

Adafactor(model.parameters(), scale_parameter=False, relative_step=False, warmup_init=False, lr=1e-3)

Diğerleri, aşağıdaki kombinasyonun iyi çalıştığını bildirdi:

Adafactor(model.parameters(), scale_parameter=True, relative_step=True, warmup_init=True, lr=None)

Trainer ile lr=None kullanırken büyük olasılıkla AdafactorSchedule kullanmanız gerekecektir

aşağıdaki gibi zamanlayıcı:

from transformers.optimization import Adafactor, AdafactorSchedule

optimizer = Adafactor(model.parameters(), scale_parameter=True, relative_step=True, warmup_init=True, lr=None)
lr_scheduler = AdafactorSchedule(optimizer)
trainer = Trainer(..., optimizers=(optimizer, lr_scheduler))

Kullanım:

# replace AdamW with Adafactor
optimizer = Adafactor(
    model.parameters(),
    lr=1e-3,
    eps=(1e-30, 1e-3),
    clip_threshold=1.0,
    decay_rate=-0.8,
    beta1=None,
    weight_decay=0.0,
    relative_step=False,
    scale_parameter=False,
    warmup_init=False,
)

adım

< >

( closure = None )

Parametreler

  • closure (callable, isteğe bağlı) — Modeli yeniden değerlendirip kaybı döndüren bir kapanış.

Tek bir optimizasyon adımı gerçekleştirir

Zamanlamalar

SchedulerType

sınıf transformers.SchedulerType

< >

( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1boundary = None )

TrainingArguments içindeki lr_scheduler_type parametresi için zamanlayıcı adları. Varsayılan olarak “linear” kullanılır. İçeride bu, Trainer içindeki get_linear_schedule_with_warmup zamanlayıcısını getirir. Zamanlayıcı türleri:

get_scheduler

transformers.get_scheduler

< >

( name: str | SchedulerTypeoptimizer: Optimizernum_warmup_steps: int | None = Nonenum_training_steps: int | None = Nonescheduler_specific_kwargs: dict | None = None )

Parametreler

  • name (str veya SchedulerType) — Kullanılacak zamanlayıcının adı.
  • optimizer (torch.optim.Optimizer) — Eğitim sırasında kullanılacak optimizör.
  • num_warmup_steps (int, isteğe bağlı) — Yapılacak ısınma adım sayısı. Bu, tüm zamanlayıcılar tarafından gerekli değildir (bu nedenle argüman isteğe bağlıdır); ayarlanmamışsa ve zamanlayıcı türü bunu gerektiriyorsa fonksiyon bir hata oluşturur.
  • num_training_steps (`int“, isteğe bağlı) — Yapılacak eğitim adım sayısı. Bu, tüm zamanlayıcılar tarafından gerekli değildir (bu nedenle argüman isteğe bağlıdır); ayarlanmamışsa ve zamanlayıcı türü bunu gerektiriyorsa hata fırlatılır.
  • scheduler_specific_kwargs (dict, isteğe bağlı) — cosine with restarts gibi zamanlayıcılar için ek parametreler. Zamanlayıcı türü ile zamanlayıcı parametreleri arasındaki uyumsuzluk, zamanlayıcı işlevinin bir TypeError fırlatmasına neden olur.

Adından herhangi bir zamanlayıcıyı almak için birleşik API.

get_constant_schedule

transformers.get_constant_schedule

< >

( optimizer: Optimizerlast_epoch: int = -1 )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • last_epoch (int, isteğe bağlı, varsayılan -1) — Eğitimin devam ettirildiği son epoch'un indeksi.

Optimizatörde ayarlanan öğrenme hızını kullanarak sabit bir öğrenme hızına sahip bir zaman çizelgesi oluşturun.

get_constant_schedule_with_warmup

transformers.get_constant_schedule_with_warmup

< >

( optimizer: Optimizernum_warmup_steps: intlast_epoch: int = -1 )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • num_warmup_steps (int) — Isınma aşaması için adım sayısı.
  • last_epoch (int, isteğe bağlı, varsayılan -1) — Eğitimin devam ettirildiği son epoch'un indeksi.

Optimizatörde ayarlanan başlangıç lr değeri ile 0 arasında doğrusal olarak artan bir öğrenme oranına sahip, sabit öğrenme oranlı bir zaman çizelgesi oluşturun.

get_cosine_schedule_with_warmup

transformers.get_cosine_schedule_with_warmup

< >

( optimizer: Optimizernum_warmup_steps: intnum_training_steps: intnum_cycles: float = 0.5last_epoch: int = -1 )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • num_warmup_steps (int) — Isınma aşaması için adım sayısı.
  • num_training_steps (int) — Toplam eğitim adımı sayısı.
  • num_cycles (float, isteğe bağlı, varsayılan 0.5) — Kozinüs zamanlamasındaki dalga sayısı (varsayılan, yarım kozinüs izleyerek maksimum değerden 0'a azalmaktır).
  • last_epoch (int, isteğe bağlı, varsayılan -1) — Eğitimin devam ettirildiği son epoch'un indeksi.

Optimizatörde ayarlanan başlangıç lr değerinden 0'a kadar, ardından 0 ile optimizatörde ayarlanan başlangıç lr değeri arasında doğrusal olarak arttığı bir ısınma süresinin ardından, cosinus fonksiyonunun değerlerini takip ederek azalan bir öğrenme oranıyla bir zaman çizelgesi oluşturun.

get_cosine_with_hard_restarts_schedule_with_warmup

transformers.get_cosine_with_hard_restarts_schedule_with_warmup

< >

( optimizer: Optimizernum_warmup_steps: intnum_training_steps: intnum_cycles: int = 1last_epoch: int = -1 )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • num_warmup_steps (int) — Isınma aşaması için adım sayısı.
  • num_training_steps (int) — Toplam eğitim adımı sayısı.
  • num_cycles (int, isteğe bağlı, varsayılan 1) — Kullanılacak sert yeniden başlatma sayısı.
  • last_epoch (int, isteğe bağlı, varsayılan -1) — Eğitimin devam ettirildiği son epoch'un indeksi.

Optimizatörde ayarlanan başlangıç lr değerinden 0'a doğru, kosinüs fonksiyonunun değerlerini takip ederek azalan bir öğrenme oranıyla bir zaman çizelgesi oluşturun. Bu çizelgede, 0 ile optimizatörde ayarlanan başlangıç lr değeri arasında doğrusal olarak artan bir ısınma (warmup) döneminin ardından birkaç sert yeniden başlatma (hard restart) bulunur.

get_cosine_with_min_lr_schedule_with_warmup

transformers.get_cosine_with_min_lr_schedule_with_warmup

< >

( optimizer: Optimizernum_warmup_steps: intnum_training_steps: intnum_cycles: float = 0.5last_epoch: int = -1min_lr: float | None = Nonemin_lr_rate: float | None = None )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • num_warmup_steps (int) — Isınma aşaması için adım sayısı.
  • num_training_steps (int) — Toplam eğitim adımı sayısı.
  • num_cycles (float, isteğe bağlı, varsayılan 0.5) — Kozinüs zamanlamasındaki dalga sayısı (varsayılan, yarım kozinüs izleyerek maksimum değerden 0'a azalmaktır).
  • last_epoch (int, isteğe bağlı, varsayılan -1) — Eğitimin devam ettirildiği son epoch'un indeksi.
  • min_lr (float, isteğe bağlı) — Kozinüs zamanlamasından sonra ulaşılacak en düşük öğrenme oranı.
  • min_lr_rate (float, isteğe bağlı) — Başlangıç öğrenme hızının oranı olarak minimum öğrenme hızı. Ayarlanırsa, min_lr ayarlanmamalıdır.

Optimizatörde ayarlanan başlangıç lr değerinden min_lr değerine kadar, arada 0 ile optimizatörde ayarlanan başlangıç lr değeri arasında doğrusal olarak artan bir ısınma (warmup) periyodu sonrasında, cosinus fonksiyonunun değerlerini takip ederek azalan bir öğrenme oranına sahip bir zaman çizelgesi oluşturun.

get_cosine_with_min_lr_schedule_with_warmup_lr_rate

transformers.get_cosine_with_min_lr_schedule_with_warmup_lr_rate

< >

( optimizer: Optimizernum_warmup_steps: intnum_training_steps: intnum_cycles: float = 0.5last_epoch: int = -1min_lr: float | None = Nonemin_lr_rate: float | None = Nonewarmup_lr_rate: float | None = None )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • num_warmup_steps (int) — Isınma aşaması için adım sayısı.
  • num_training_steps (int) — Toplam eğitim adımı sayısı.
  • num_cycles (float, isteğe bağlı, varsayılan 0.5) — Kozinüs zamanlamasındaki dalga sayısı (varsayılan, yarım kozinüs izleyerek maksimum değerden 0'a azalmaktır).
  • last_epoch (int, isteğe bağlı, varsayılan -1) — Eğitimin devam ettirildiği son epoch'un indeksi.
  • min_lr (float, isteğe bağlı) — Kozinüs zamanlamasından sonra ulaşılacak en düşük öğrenme oranı.
  • min_lr_rate (float, isteğe bağlı) — Başlangıç öğrenme hızının oranı olarak minimum öğrenme hızı. Ayarlanırsa, min_lr ayarlanmamalıdır.
  • warmup_lr_rate (float, isteğe bağlı) — Başlangıç öğrenme hızının oranı olarak en düşük öğrenme hızı. Ayarlanmazsa warmup_lr_rate, float(1/num_warmup_steps) olarak ele alınır.

Optimizatörde ayarlanan başlangıç lr değerinden min_lr değerine kadar, arada 0 ile optimizatörde ayarlanan başlangıç lr değeri arasında doğrusal olarak artan bir ısınma (warmup) periyodu sonrasında, cosinus fonksiyonunun değerlerini takip ederek azalan bir öğrenme oranına sahip bir zaman çizelgesi oluşturun.

GreedyLR

sınıf transformers.GreedyLR

< >

( optimizer: Optimizermode: str = 'min'factor: float = 0.95patience: int = 10threshold: float = 1e-06threshold_mode: str = 'abs'cooldown: int = 0warmup: int = 0min_lr: float | list[float] = 0.001max_lr: float | list[float] = 1.0eps: float = 1e-08verbose: bool = Falsesmooth: bool = Falsewindow_size: int = 50reset_start: int = 500 )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • mode (str, isteğe bağlı, varsayılan "min") — ‘min’ veya ‘max’ değerlerinden biri. ‘min’ modunda, metrik azalmayı durdurduğunda LR azaltılır; ‘max’ modunda ise artmayı durdurduğunda azaltılır.
  • factor (float, isteğe bağlı, varsayılan 0.95) — Öğrenme hızının ayarlanacağı çarpan. LR, plato durumunda çarpan ile çarpılır ve iyileşme durumunda çarpana bölünür. 1.0'dan küçük olmalıdır.
  • patience (int, isteğe bağlı, varsayılan 10) — Öğrenme hızının ayarlanacağı, iyileşme olmayan epoch sayısı.
  • threshold (float, isteğe bağlı, varsayılan 1e-06) — Yeni optimumu ölçmek için eşik değeri.
  • threshold_mode (str, isteğe bağlı, varsayılan "abs") — ‘rel’ veya ‘abs’ değerlerinden biri.
  • cooldown (int, isteğe bağlı, varsayılan 0) — LR azaltıldıktan sonra normal çalışmaya devam etmeden önce beklenmesi gereken epoch sayısı.
  • warmup (int, isteğe bağlı, varsayılan 0) — LR artırıldıktan sonra normal çalışmaya geçmeden önce beklenmesi gereken epoch sayısı.
  • min_lr (float veya list[float], isteğe bağlı, varsayılan 0.001) — Öğrenme hızının alt sınırı.
  • max_lr (float veya list[float], isteğe bağlı, varsayılan 1.0) — Öğrenme hızı için üst sınır.
  • eps (float, isteğe bağlı, varsayılan 1e-08) — lr'ye uygulanan minimal azalma.
  • verbose (bool, isteğe bağlı, varsayılan False) — True ise, her güncelleme için stdout'a bir mesaj yazdırır.
  • smooth (bool, isteğe bağlı, varsayılan False) — True ise, metriklere akış ortalama yumuşatma uygulanır.
  • window_size (int, isteğe bağlı, varsayılan 50) — smooth=True olduğunda akış ortalama için pencere boyutu.
  • reset_start (int, isteğe bağlı, varsayılan 500) — Başlangıç durumuna sıfırlanmadan önce min_lr'da beklenecek adım sayısı.

Eğitim metriklerine yanıt veren uyarlama öğrenme oranı zamanlayıcısı.

GreedyLR, eğitim performansına göre öğrenme hızını dinamik olarak ayarlar:

  • Metrikler tutarlı bir şekilde iyileştiğinde LR'yi artırır (faktöre böler)
  • Metrikler plato yaptığında LR'yi azaltır (faktör ile çarpar)

Bu, önceden belirlenmiş bir zaman çizelgesini takip etmek yerine gerçek eğitim dinamiklerine yanıt vermesi bakımından, cosine annealing gibi geleneksel zamanlayıcılardan farklıdır.

Referans: GreedyLR: A Novel Adaptive Learning Rate Scheduler <https://arxiv.org/abs/2512.14527>_

Örnek:

>>> optimizer = torch.optim.SGD(model.parameters(), lr=0.1)
>>> scheduler = GreedyLR(optimizer, mode="min", patience=10)
>>> for epoch in range(100):
...     train(...)
...     val_loss = validate(...)
...     scheduler.step(val_loss)

get_last_lr

< >

( )

Mevcut zamanlayıcı tarafından son hesaplanan öğrenme oranını döndürür.

load_state_dict

< >

( state_dict: dict[str, Any] )

Durumu bir sözlükten yükler.

state_dict

< >

( )

Zamanlayıcının durumunu bir sözlük olarak döndürür.

adım

< >

( metrics: floatepoch: int | None = None )

Parametreler

  • metrics (float) — LR ayarlama kararları için kullanılacak metrik değeri.
  • epoch (int, isteğe bağlı) — Mevcut epoch numarası. None ise dahili sayaç kullanılır.

Verilen metrikler temelinde bir zamanlayıcı adımı gerçekleştirir.

get_greedy_schedule

transformers.get_greedy_schedule

< >

( optimizer: Optimizer**kwargs )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • kwargs (dict, isteğe bağlı) — Zamanlayıcıya aktarılan ek parametreler. Olası parametreler için GreedyLR bölümüne bakın.

Eğitim metriklerine göre LR'yi ayarlayan bir uyumlu öğrenme oranı zamanlayıcısı oluşturun.

get_linear_schedule_with_warmup

transformers.get_linear_schedule_with_warmup

< >

( optimizernum_warmup_stepsnum_training_stepslast_epoch = -1 )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • num_warmup_steps (int) — Isınma aşaması için adım sayısı.
  • num_training_steps (int) — Toplam eğitim adımı sayısı.
  • last_epoch (int, isteğe bağlı, varsayılan -1) — Eğitimin devam ettirildiği son epoch'un indeksi.

Optimizatörde ayarlanan başlangıç lr değerinden 0'a doğru doğrusal olarak azalan bir öğrenme oranına sahip bir zaman çizelgesi oluşturun; bu, başlangıçta 0'dan optimizatörde ayarlanan başlangıç lr değerine doğru doğrusal olarak arttığı bir ısınma (warmup) döneminden sonra gerçekleşir.

get_polynomial_decay_schedule_with_warmup

transformers.get_polynomial_decay_schedule_with_warmup

< >

( optimizernum_warmup_stepsnum_training_stepslr_end = 1e-07power = 1.0last_epoch = -1 )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • num_warmup_steps (int) — Isınma aşaması için adım sayısı.
  • num_training_steps (int) — Toplam eğitim adımı sayısı.
  • lr_end (float, isteğe bağlı, varsayılan 1e-7) — Bitiş LR değeri.
  • power (float, isteğe bağlı, varsayılan 1.0) — Güç katsayısı.
  • last_epoch (int, isteğe bağlı, varsayılan -1) — Eğitimin devam ettirildiği son epoch'un indeksi.

Optimizatörde ayarlanan başlangıç öğrenme hızından, lr_end tarafından tanımlanan son öğrenme hızına kadar polinomlu bir azalma ile düşen bir öğrenme hızı zamanlaması oluşturun; bu, başlangıçta 0'dan optimizatörde ayarlanan başlangıç öğrenme hızına doğru doğrusal olarak arttığı bir ısınma süresinin ardından gerçekleşir.

Not: power, fairseq uygulamasında olduğu gibi 1.0 varsayılan değerine sahiptir; bu uygulama da https://github.com/google-research/bert/blob/f39e881b169b9d53bea03d2d341b31707a6c052b/optimization.py#L37 adresindeki orijinal BERT uygulamasına dayanmaktadır.

get_inverse_sqrt_schedule

transformers.get_inverse_sqrt_schedule

< >

( optimizer: Optimizernum_warmup_steps: inttimescale: int | None = Nonelast_epoch: int = -1 )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • num_warmup_steps (int) — Isınma aşaması için adım sayısı.
  • timescale (int, isteğe bağlı, varsayılan num_warmup_steps) — Zaman ölçeği.
  • last_epoch (int, isteğe bağlı, varsayılan -1) — Eğitimin devam ettirildiği son epoch'un indeksi.

Optimizatörde ayarlanan başlangıç öğrenme hızından, öğrenme hızını 0'dan başlangıç öğrenme hızına doğrusal olarak artıran bir ısınma süresinin ardından, ters karekök öğrenme hızına sahip bir zaman çizelgesi oluşturun.

get_reduce_on_plateau_schedule

transformers.get_reduce_on_plateau_schedule

< >

( optimizer: Optimizer**kwargs )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • kwargs (dict, isteğe bağlı) — Zamanlayıcıya iletilecek ek parametreler. Olası parametreler için torch.optim.lr_scheduler.ReduceLROnPlateau bölümüne bakın.

Bir metrikin iyileşmesi durduğunda azalan sabit bir öğrenme oranına sahip bir zaman çizelgesi oluşturun.

get_wsd_schedule

transformers.get_wsd_schedule

< >

( optimizer: Optimizernum_warmup_steps: intnum_decay_steps: intnum_training_steps: int | None = Nonenum_stable_steps: int | None = Nonewarmup_type: str = 'linear'decay_type: str = 'cosine'min_lr_ratio: float = 0num_cycles: float = 0.5last_epoch: int = -1 )

Parametreler

  • optimizer (~torch.optim.Optimizer) — Öğrenme hızının zamanlamasının yapılacağı optimizör.
  • num_warmup_steps (int) — Isınma aşaması için adım sayısı.
  • num_decay_steps (int) — Azalma fazı için adım sayısı.
  • num_training_steps (int, isteğe bağlı) — Toplam eğitim adımı sayısı. Bu, ısınma, kararlı ve azalma adımlarının toplamıdır. num_stable_steps sağlanmazsa, kararlı faz num_training_steps - num_warmup_steps - num_decay_steps olur.
  • num_stable_steps (int, isteğe bağlı) — Kararlı faz için adım sayısı. Lütfen num_warmup_steps + num_stable_steps + num_decay_steps toplamının num_training_steps değerine eşit olduğundan emin olun; aksi takdirde diğer adımlar varsayılan olarak minimum öğrenme oranına ayarlanır.
  • warmup_type (str, isteğe bağlı, varsayılan “linear”) — Kullanılacak ısınma türü. ‘linear’, ‘cosine’ veya ‘1-sqrt’ olabilir.
  • decay_type (str, isteğe bağlı, varsayılan “cosine”) — Kullanılacak azalma türü. ‘linear’, ‘cosine’ veya ‘1-sqrt’ olabilir.
  • min_lr_ratio (float, isteğe bağlı, varsayılan 0) — Başlangıç öğrenme hızının oranı olarak minimum öğrenme hızı.
  • num_cycles (float, isteğe bağlı, varsayılan 0.5) — Kozinüs zamanlamasındaki dalga sayısı (varsayılan, yarım kozinüs izleyerek maksimum değerden 0'a azalmaktır).
  • last_epoch (int, isteğe bağlı, varsayılan -1) — Eğitimin devam ettirildiği son epoch'un indeksi.

Üç aşamalı bir öğrenme oranına sahip bir zaman çizelgesi oluşturun:

  1. warmup: warmup_type izlenerek başlangıç öğrenme hızının min_lr_ratio katından başlangıç öğrenme hızına kadar artırılır.
  2. stable: sabit öğrenme oranı.
  3. decay: başlangıç öğrenme hızından, decay_type'e göre min_lr_ratio ile başlangıç öğrenme hızının çarpımına doğru azalma.
Update on GitHub