Diffusers documentation

PNDMScheduler

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

and get access to the augmented documentation experience

to get started

PNDMScheduler

PNDMScheduler veya difüzyon modelleri için sözde sayısal yöntemler, Runge-Kutta ve doğrusal çok adımlı yöntem gibi daha gelişmiş ODE entegrasyon tekniklerini kullanır. Orijinal uygulama crowsonkb/k-diffusion adresinde bulunabilir.

PNDMScheduler

sınıf diffusers.PNDMScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.0001beta_end: float = 0.02beta_schedule: str = 'linear'trained_betas: numpy.ndarray | list[float] | None = Noneskip_prk_steps: bool = Falseset_alpha_to_one: bool = Falseprediction_type: typing.Literal['epsilon', 'v_prediction'] = 'epsilon'timestep_spacing: typing.Literal['linspace', 'leading', 'trailing'] = 'leading'steps_offset: int = 0 )

Parametreler

  • num_train_timesteps (int, varsayılan 1000) — Modelin eğitileceği difüzyon adım sayısı.
  • beta_start (float, varsayılan 0.0001) — Çıkarımın başlangıç beta değeri.
  • beta_end (float, varsayılan 0.02) — Son beta değeri.
  • beta_schedule ("linear", "scaled_linear" veya "squaredcos_cap_v2", varsayılan "linear") — Beta zamanlaması, modelin adım atması için beta aralığını beta dizisine eşleyen bir haritalamadır.
  • trained_betas (np.ndarray, isteğe bağlı) — Betalar dizisini doğrudan yapılandırıcıya ileterek beta_start ve beta_end parametrelerini atlayın.
  • skip_prk_steps (bool, varsayılan False) — Zamanlayıcının, PLMS adımlarından önce gerekli olduğu orijinal makalede belirtilen Runge-Kutta adımlarını atlamasına izin verir.
  • set_alpha_to_one (bool, varsayılan False) — Her difüzyon adımı, o adımdaki ve bir önceki adımdaki alfa çarpım değerini kullanır. Son adım için bir önceki alfa yoktur. Bu seçenek True olduğunda bir önceki alfa çarpımı 1 olarak sabitlenir, aksi halde 0. adımdaki alfa değeri kullanılır.
  • prediction_type ("epsilon" veya "v_prediction", varsayılan "epsilon") — Zamanlayıcı işlevinin tahmin türü; epsilon (difüzyon sürecinin gürültüsünü tahmin eder) veya v_prediction (Imagen Video makalesinin 2.4 bölümüne bakın).
  • timestep_spacing ("linspace", "leading" veya "trailing", varsayılan "leading") — Zaman adımlarının ölçeklendirilme biçimi. Daha fazla bilgi için Common Diffusion Noise Schedules and Sample Steps are Flawed makalesindeki Tablo 2'ye bakın.
  • steps_offset (int, varsayılan 0) — Bazı model ailelerinin gerektirdiği gibi, çıkarım adımlarına eklenen bir ofset.

PNDMScheduler, Runge-Kutta ve doğrusal çok adımlı yöntem gibi sahte sayısal yöntemleri, difüzyon modelleri için kullanır.

Bu model SchedulerMixin ve ConfigMixin sınıflarından devralır. Kütüphanenin tüm zamanlayıcılar için yükleme ve kaydetme gibi genel yöntemleri uyguladığı üst sınıf belgelendirmesini kontrol edin.

add_noise

< >

( original_samples: Tensornoise: Tensortimesteps: IntTensor ) → torch.Tensor

Parametreler

  • original_samples (torch.Tensor) — Gürültü eklenecek orijinal örnekler.
  • noise (torch.Tensor) — Örneklere eklenecek gürültü.
  • timesteps (torch.IntTensor) — Her örnek için gürültü seviyesini gösteren zaman adımları.

Dönüş değeri

torch.Tensor

Gürültülü örnekler.

Her zaman adımındaki gürültü büyüklüğüne göre orijinal örneklerin gürültü ekleyin (bu, ileri difüzyon sürecidir).

scale_model_input

< >

( sample: Tensor*args**kwargs ) → torch.Tensor

Parametreler

  • sample (torch.Tensor) — Girdi örneği.

Dönüş değeri

torch.Tensor

Ölçeklendirilmiş bir girdi örneği.

Gürültüden arındırma modelinin girdisinin mevcut zaman adımına bağlı olarak ölçeklenmesi gereken zamanlayıcılarla değiştirilebilirliği sağlar.

set_timesteps

< >

( num_inference_steps: intdevice: typing.Union[str, torch.device] = None )

Parametreler

  • num_inference_steps (int) — Önceden eğitilmiş bir modelle örnekler oluşturulurken kullanılan difüzyon adım sayısı.
  • device (str veya torch.device, isteğe bağlı) — Adımların (timesteps) taşınacağı cihaz. None ise adımlar taşınmaz.

Difüzyon zinciri için kullanılan ayrık zaman adımlarını ayarlar (çalıştırılmadan önce çıkarım yapılmalıdır).

adım

< >

( model_output: Tensortimestep: intsample: Tensorreturn_dict: bool = True ) → SchedulerOutput or tuple

Parametreler

  • model_output (torch.Tensor) — Öğrenen difüzyon modelinden gelen doğrudan çıktı.
  • timestep (int) — Difüzyon zincirindeki mevcut ayrık zaman adımı.
  • sample (torch.Tensor) — Difüzyon süreci tarafından oluşturulan bir örneğin mevcut bir örneği.
  • return_dict (bool, varsayılan True) — SchedulerOutput mu yoksa tuple mu döndürüleceğini belirtir.

Dönüş değeri

SchedulerOutput veya tuple

return_dict True ise SchedulerOutput döndürülür, aksi halde ilk öğesi örnek tensörü olan bir tuple döndürülür.

Önceki zaman adımından örneklemeyi SDE'yi tersine çevirerek tahmin edin. Bu işlev, öğrenilen model çıktılarını (genellikle tahmin edilen gürültüyü) difüzyon sürecine yayarak ve dahili değişken counter'ye bağlı olarak step_prk() veya step_plms() işlevini çağırır.

step_plms

< >

( model_output: Tensortimestep: intsample: Tensorreturn_dict: bool = True ) → SchedulerOutput or tuple

Parametreler

  • model_output (torch.Tensor) — Öğrenen difüzyon modelinden gelen doğrudan çıktı.
  • timestep (int) — Difüzyon zincirindeki mevcut ayrık zaman adımı.
  • sample (torch.Tensor) — Difüzyon süreci tarafından oluşturulan bir örneğin mevcut bir örneği.
  • return_dict (bool, varsayılan True) — SchedulerOutput veya tuple döndürülüp döndürülmemeye karar verir.

Dönüş değeri

SchedulerOutput veya tuple

return_dict True ise SchedulerOutput döndürülür, aksi halde ilk öğesi örnek tensörü olan bir tuple döndürülür.

Önceki zaman adımındaki örneği SDE'yi tersine çevirerek tahmin edin. Bu fonksiyon, örneği doğrusal çok adımlı yöntemle ilerletir. Çözümü yaklaşık olarak bulmak için ileri yönde çok sayıda geçiş yapar.

step_prk

< >

( model_output: Tensortimestep: intsample: Tensorreturn_dict: bool = True ) → SchedulerOutput or tuple

Parametreler

  • model_output (torch.Tensor) — Öğrenen difüzyon modelinden gelen doğrudan çıktı.
  • timestep (int) — Difüzyon zincirindeki mevcut ayrık zaman adımı.
  • sample (torch.Tensor) — Difüzyon süreci tarafından oluşturulan bir örneğin mevcut bir örneği.
  • return_dict (bool, varsayılan True) — SchedulerOutput veya tuple döndürülüp döndürülmemeye karar verir.

Dönüş değeri

SchedulerOutput veya tuple

return_dict True ise SchedulerOutput döndürülür, aksi halde ilk öğesi örnek tensörü olan bir tuple döndürülür.

Önceki zaman adımındaki örneği SDE'yi tersine çevirerek tahmin edin. Bu fonksiyon, örneği Runge-Kutta yöntemiyle ilerletir. Diferansiyel denklemin çözümünü yaklaşık olarak bulmak için dört ileri geçiş gerçekleştirir.

SchedulerOutput

sınıf diffusers.schedulers.scheduling_utils.SchedulerOutput

< >

( prev_sample: Tensor )

Parametreler

  • prev_sample (görseller için torch.Tensor, şekli (batch_size, num_channels, height, width)) — Önceki zaman adımının hesaplanan örneği (x_{t-1}). prev_sample, gürültü azaltma döngüsünde bir sonraki model girdisi olarak kullanılmalıdır.

Bir zamanlayıcının step işlevinin çıktısı için temel sınıf.

Update on GitHub