Diffusers documentation

ScoreSdeVeScheduler

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

ScoreSdeVeScheduler

ScoreSdeVeScheduler, varyans patlatmalı stokastik diferansiyel denklem (SDE) zamanlayıcısıdır. Yang Song, Jascha Sohl-Dickstein, Diederik P. Kingma, Abhishek Kumar, Stefano Ermon ve Ben Poole tarafından Score-Based Generative Modeling through Stochastic Differential Equations makalesinde tanıtılmıştır.

Makalenin özeti şudur:

Veriden gürültü üretmek kolaydır; gürültüden veri üretmek ise üretken modellemedir. Karmaşık bir veri dağılımını, yavaşça gürültü enjekte ederek bilinen bir öncül dağılıma (prior distribution) pürüzsüzce dönüştüren bir stokastik diferansiyel denklemi (SDE) ve gürültüyü yavaşça kaldırarak öncül dağılımı tekrar veri dağılımına dönüştüren karşılık gelen ters zamanlı SDE'yi sunuyoruz. Kritik olarak, ters zamanlı SDE yalnızca bozulmuş veri dağılımının zamana bağlı gradyan alanına (diğer adıyla, skor) bağlıdır. Skor tabanlı üretken modellemedeki ilerlemelerden yararlanarak bu skorları sinir ağlarıyla doğru bir şekilde tahmin edebilir ve örnekler üretmek için sayısal SDE çözücülerini kullanabiliriz. Bu çerçevenin, skor tabanlı üretken modelleme ve difüzyon olasılıksal modellemedeki önceki yaklaşımları kapsadığını, yeni örnek alma prosedürlerine ve yeni modelleme yeteneklerine olanak tanıdığını gösteriyoruz. Özellikle, diskretize edilmiş ters zamanlı SDE'nin evrimindeki hataları düzeltmek için bir öngörücü-düzeltici (predictor-corrector) çerçevesi tanıtıyoruz. Ayrıca, SDE ile aynı dağılımdan örnekleyen ancak ek olarak kesin olasılık (likelihood) hesabına ve iyileştirilmiş örnek alma verimliliğine olanak tanıyan eşdeğer bir sinir ODE türetiyoruz. Bunun yanı sıra, sınıf koşullu üretim, görsel inpainting ve renklendirme üzerindeki deneylerle gösterildiği gibi, skor tabanlı modellerle ters problemleri çözmenin yeni bir yolunu sunuyoruz. Birden fazla mimari iyileştirmeyle birleştirildiğinde, CIFAR-10 üzerinde koşulsuz görsel üretim için 9.89 Inception skoru ve 2.20 FID ile rekor kıran bir performans elde ediyor, 2.99 bits/dim rekabetçi bir olasılık (likelihood) sağlıyor ve ilk kez skor tabanlı bir üretken modelden 1024 x 1024 görsellerin yüksek sadakatli üretimini gösteriyoruz.

ScoreSdeVeScheduler

sınıf diffusers.ScoreSdeVeScheduler

< >

( num_train_timesteps: int = 2000snr: float = 0.15sigma_min: float = 0.01sigma_max: float = 1348.0sampling_eps: float = 1e-05correct_steps: int = 1 )

Parametreler

  • num_train_timesteps (int, varsayılan 2000) — Modelin eğitileceği difüzyon adım sayısı.
  • snr (float, varsayılan 0.15) — model_output örneğinden (ağdan gelen) rastgele gürültüye giden adımı ağırlıklandıran bir katsayı.
  • sigma_min (float, varsayılan 0.01) — Örnekleme işlemindeki sigma dizisi için başlangıç gürültü ölçeği. Minimum sigma, verilerin dağılımını yansıtmalıdır.
  • sigma_max (float, varsayılan 1348.0) — Modelin girdisi olarak iletilen sürekli zaman adımlarının aralığı için kullanılan maksimum değer.
  • sampling_eps (float, varsayılan 1e-5) — Adımların 1'den epsilon'a doğru kademeli olarak azaldığı örneklemenin son değeri.
  • correct_steps (int, varsayılan 1) — Üretilen örnek üzerinde uygulanan düzeltme adım sayısı.

ScoreSdeVeScheduler, varyans patlatma (variance exploding) stokastik diferansiyel denklem (SDE) zamanlayıcısıdı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: Tensor ) → torch.Tensor

Parametreler

  • original_samples (torch.Tensor) — Gürültü eklenecek orijinal örnekler.
  • noise (torch.Tensor) — Orijinal örneklerin üzerine eklenecek gürültü tensörü.
  • timesteps (torch.Tensor) — Gürültü eklenmesi gereken zaman adımları, zaman çizelgesinden gürültü seviyesini belirler.

Dönüş değeri

torch.Tensor

Zaman adımı zamanlamasına göre ölçeklendirilen eklenen gürültüye sahip gürültülü örnekler.

Belirtilen zaman adımlarındaki gürültü zamanlamasına göre orijinal örneklerin gürültü ekleyin. Bu, ileri difüzyon sürecidir.

get_adjacent_sigma

< >

( timesteps: Tensort: Tensor ) → torch.Tensor

Parametreler

  • timesteps (torch.Tensor) — Ayrık zaman adımı dizinlerinin tensörü.
  • t (torch.Tensor) — Sürekli zaman adımlı değerlerinin tensörü.

Dönüş değeri

torch.Tensor

Bitişik (önceki) zaman adımı indeksi için sigma değerleri.

Önceki zaman adımı dizinine karşılık gelen sigma değerini döndürür. Zaman adımı sıfır olduğunda (önceki zaman adımı yoksa), sıfır döndürülür.

scale_model_input

< >

( sample: Tensortimestep: int | None = None ) → torch.Tensor

Parametreler

  • sample (torch.Tensor) — Girdi örneği.
  • timestep (int, isteğe bağlı) — Difüzyon zincirindeki mevcut zaman adımı.

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_sigmas

< >

( num_inference_steps: intsigma_min: float | None = Nonesigma_max: float | None = Nonesampling_eps: float | None = None )

Parametreler

  • num_inference_steps (int) — Önceden eğitilmiş bir modelle örnekler oluşturulurken kullanılan difüzyon adım sayısı.
  • sigma_min (float, isteğe bağlı) — Başlangıç gürültü ölçeği değeri (zamanlayıcı anında oluşturulması sırasında verilen değeri geçersiz kılar).
  • sigma_max (float, isteğe bağlı) — Son gürültü ölçeği değeri (zamanlayıcı anında oluşturulurken verilen değeri geçersiz kılar).
  • sampling_eps (float, isteğe bağlı) — Son zaman adımı değeri (zamanlayıcı anında oluşturulurken verilen değeri geçersiz kılar).

Difüzyon zinciri için kullanılan gürültü ölçeklerini ayarlar (çalıştırılmadan önce çıkarım yapılmalıdır). Sigmalar, örnek güncellemesinin drift ve diffusion bileşenlerinin ağırlığını kontrol eder.

set_timesteps

< >

( num_inference_steps: intsampling_eps: float | None = Nonedevice: typing.Union[str, torch.device, NoneType] = None )

Parametreler

  • num_inference_steps (int) — Önceden eğitilmiş bir modelle örnekler oluşturulurken kullanılan difüzyon adım sayısı.
  • sampling_eps (float, isteğe bağlı) — Son zaman adımı değeri (zamanlayıcı anında oluşturulurken verilen değeri geçersiz kılar).
  • 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 sürekli zaman adımlarını ayarlar (çalıştırılmadan önce çıkarım yapılmalıdır).

step_correct

< >

( model_output: Tensorsample: Tensorgenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → SchedulerOutput or tuple

Parametreler

  • model_output (torch.Tensor) — Öğrenen difüzyon modelinden gelen doğrudan çıktı.
  • sample (torch.Tensor) — Difüzyon süreci tarafından oluşturulan bir örneğin mevcut bir örneği.
  • generator (torch.Generator, isteğe bağlı) — Rastgele sayı üreteci.
  • return_dict (bool, isteğe bağlı, 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.

Ağın model_output'una göre tahmin edilen örneği düzeltin. Bu işlem, genellikle bir önceki zaman adımının tahmini yapıldıktan sonra tekrar tekrar çalıştırılır.

step_pred

< >

( model_output: Tensortimestep: intsample: Tensorgenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → SdeVeOutput 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.
  • generator (torch.Generator, isteğe bağlı) — Rastgele sayı üreteci.
  • return_dict (bool, isteğe bağlı, varsayılan True) — SdeVeOutput veya tuple döndürülüp döndürülmemeye karar verir.

Dönüş değeri

SdeVeOutput veya tuple

return_dict True ise SdeVeOutput 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 işlev, öğrenilen model çıktılarını (en sık tahmin edilen gürültüyü) kullanarak difüzyon sürecini ilerletir.

SdeVeOutput

sınıf diffusers.schedulers.scheduling_sde_ve.SdeVeOutput

< >

( prev_sample: Tensorprev_sample_mean: 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.
  • prev_sample_mean (görseller için (batch_size, num_channels, height, width) boyutunda bir torch.Tensor) — Önceki zaman adımları üzerinde ortalama alınmış prev_sample.

Zamanlayıcının step işlevi çıktısı için çıktı sınıfı.

Update on GitHub