Buckets:

mishig's picture
|
download
raw
15.2 kB

EulerDiscreteScheduler

Euler zamanlayıcısı (Algoritma 2), Karras ve ark. tarafından kaleme alınan Elucidating the Design Space of Diffusion-Based Generative Models makalesinden alınmıştır. Bu, genellikle 20-30 adımda iyi çıktılar üretebilen hızlı bir zamanlayıcıdır. Zamanlayıcı, Katherine Crowson tarafından geliştirilen orijinal k-diffusion uygulamasına dayanmaktadır.

EulerDiscreteScheduler[[diffusers.EulerDiscreteScheduler]]

diffusers.EulerDiscreteScheduler[[diffusers.EulerDiscreteScheduler]]

diffusers.EulerDiscreteScheduler(num_train_timesteps: int = 1000, beta_start: float = 0.0001, beta_end: float = 0.02, beta_schedule: str = 'linear', trained_betas: numpy.ndarray | list[float] | None = None, prediction_type: str = 'epsilon', interpolation_type: str = 'linear', use_karras_sigmas: bool | None = False, use_exponential_sigmas: bool | None = False, use_beta_sigmas: bool | None = False, sigma_min: float | None = None, sigma_max: float | None = None, timestep_spacing: typing.Literal['linspace', 'leading', 'trailing'] = 'linspace', timestep_type: typing.Literal['discrete', 'continuous'] = 'discrete', steps_offset: int = 0, rescale_betas_zero_snr: bool = False, final_sigmas_type: typing.Literal['zero', 'sigma_min'] = 'zero')

Kaynak

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 (Literal["linear", "scaled_linear", "squaredcos_cap_v2"], varsayılan "linear") : Beta zamanlaması, modelin adım atması için beta aralığını beta dizisine eşleyen bir haritalamadır. "linear", "scaled_linear" veya "squaredcos_cap_v2" seçeneklerinden birini seçin.

trained_betas (np.ndarray, isteğe bağlı) : beta_start ve beta_end parametrelerini atlamak için beta dizisini doğrudan yapılandırıcıya iletin.

prediction_type (Literal["epsilon", "sample", "v_prediction"], defaults to "epsilon", optional) : Prediction type of the scheduler function; can be "epsilon" (predicts the noise of the diffusion process), "sample" (directly predicts the noisy sample) or "v_prediction"` (see section 2.4 of Imagen Video paper).

interpolation_type (Literal["linear", "log_linear"], varsayılan "linear", isteğe bağlı) : Zamanlayıcının gürültü azaltma adımları için ara sigma değerlerini hesaplamak üzere kullanılacak interpolasyon türü. "linear" veya "log_linear" değerlerinden biri olmalıdır.

use_karras_sigmas (bool, isteğe bağlı, varsayılan False) : Örnekleme sürecinde gürültü zamanlamasındaki adım boyutları için Karras sigmalarının kullanılıp kullanılmayacağını belirtir. True ise, sigmalar {σi} gürültü seviyeleri dizisine göre belirlenir.

use_exponential_sigmas (bool, isteğe bağlı, varsayılan False) : Örnekleme sürecinde gürültü zamanlamasındaki adım boyutları için üstel sigmaların kullanılıp kullanılmayacağını belirtir.

use_beta_sigmas (bool, isteğe bağlı, varsayılan False) : Örnekleme sürecinde gürültü zamanlamasında adım boyutları için beta sigmaların kullanılıp kullanılmayacağını belirtir. Daha fazla bilgi için Beta Sampling is All You Need makalesine bakın.

sigma_min (float, isteğe bağlı) : Gürültü zamanlaması için minimum sigma değeri. Verilmezse, zamanlamadaki son sigma değeri varsayılan olarak kullanılır.

sigma_max (float, isteğe bağlı) : Gürültü zamanlaması için maksimum sigma değeri. Verilmezse, zamanlamadaki ilk sigma değeri varsayılan olarak kullanılır.

timestep_spacing (Literal["linspace", "leading", "trailing"], varsayılan "linspace") : Zaman adımlarının ölçeklendirilme yöntemi. Daha fazla bilgi için Common Diffusion Noise Schedules and Sample Steps are Flawed makalesindeki Tablo 2'ye bakın.

timestep_type (Literal["discrete", "continuous"], varsayılan "discrete") : Kullanılacak timestep türü. "discrete" veya "continuous" olabilir.

steps_offset (int, varsayılan 0) : Bazı model ailelerinin gerektirdiği gibi, çıkarım adımlarına eklenen bir ofset.

rescale_betas_zero_snr (bool, varsayılan False) : Betaların sıfır terminal SNR'ye sahip olacak şekilde yeniden ölçeklenip ölçeklenmeyeceğini belirtir. Bu, modelin orta parlaklıktaki örneklerle sınırlı kalmak yerine çok parlak ve karanlık örnekler üretmesini sağlar. --offset_noise ile gevşek bir şekilde ilişkilidir.

final_sigmas_type (Literal["zero", "sigma_min"], varsayılan "zero") : Örnekleme süreci sırasında gürültü zamanlaması için son sigma değeri. "sigma_min" ise, son sigma, eğitim zamanlamasındaki son sigma ile aynıdır. "zero" ise, son sigma 0 olarak ayarlanır.

Euler zamanlayıcı.

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[[diffusers.EulerDiscreteScheduler.add_noise]]

add_noise(original_samples: Tensor, noise: Tensor, timesteps: Tensor)

Kaynak

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ünün ekleneceği zaman adımları, zaman çizelgesinden gürültü seviyesini belirler.

Dönüş: 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ü planına göre orijinal örneklerin gürültü ekleyin.

get_velocity[[diffusers.EulerDiscreteScheduler.get_velocity]]

get_velocity(sample: Tensor, noise: Tensor, timesteps: Tensor)

Kaynak

Parametreler:

sample (torch.Tensor) : Hızın hesaplanacağı giriş örneği.

noise (torch.Tensor) : Örnek ile eşleşen gürültü tensörü.

timesteps (torch.Tensor) : Hızın hesaplanacağı zaman adımları.

Dönüş: torch.Tensor

sqrt(alpha_prod) * noise - sqrt(1 - alpha_prod) * sample olarak hesaplanan hız tahmini.

Belirtilen zaman adımlarında, verilen örnek ve gürültü için hız tahminini hesaplayın.

Bu yöntem, örnek ve gürültünün doğrusal bir kombinasyonunu tahmin eden v-tahmin modellerinde kullanılan hız tahminini uygular.

index_for_timestep[[diffusers.EulerDiscreteScheduler.index_for_timestep]]

index_for_timestep(timestep: typing.Union[float, torch.Tensor], schedule_timesteps: typing.Optional[torch.Tensor] = None)

Kaynak

Parametreler:

timestep (float veya torch.Tensor) : Zamanlamada bulunacak timestep değeri.

schedule_timesteps (torch.Tensor, isteğe bağlı) : Aranacak zaman adımı zamanlaması. None ise self.timesteps kullanılır.

Dönüş: int

Zaman adımı planındaki zaman adımının indeksi. Çok eşleşme varsa, planın ortasından başlanırken (örneğin, görüntüden görüntüye) bir sigmanın atlanmaması için çok eşleşme durumunda ikinci indeksi döndürür.

Verilen zaman adımının zaman adımı zaman çizelgesindeki indeksini bulun.

scale_model_input[[diffusers.EulerDiscreteScheduler.scale_model_input]]

scale_model_input(sample: Tensor, timestep: typing.Union[float, torch.Tensor])

Kaynak

Parametreler:

sample (torch.Tensor) : Ölçeklendirilecek girdi örneği.

timestep (float veya torch.Tensor) : Difüzyon zincirindeki mevcut zaman adımı.

Dönüş: torch.Tensor

(sigma**2 + 1) ** 0.5 ile bölünmüş ölçeklendirilmiş bir giriş örneği.

Gürültü azaltma modelinin girdisinin, mevcut zaman adımına bağlı olarak ölçeklenmesi gereken zamanlayıcılarla değiştirilebilirliği sağlar. Euler algoritmasıyla eşleşmesi için gürültü azaltma modelinin girdisini (sigma**2 + 1) ** 0.5 ile ölçekler.

set_begin_index[[diffusers.EulerDiscreteScheduler.set_begin_index]]

set_begin_index(begin_index: int = 0)

Kaynak

Parametreler:

begin_index (int, varsayılan 0) : Zamanlayıcının başlangıç indeksi.

Zamanlayıcının başlangıç indeksini ayarlar. Bu işlev, çıkarım (inference) öncesinde pipeline'dan çalıştırılmalıdır.

set_timesteps[[diffusers.EulerDiscreteScheduler.set_timesteps]]

set_timesteps(num_inference_steps: int = None, device: typing.Union[str, torch.device] = None, timesteps: list[int] | None = None, sigmas: list[float] | None = None)

Kaynak

Parametreler:

num_inference_steps (int, opsiyonel) : Ön eğitilmiş bir modelle örnekler oluşturulurken kullanılan difüzyon adım sayısı. None ise timesteps veya sigmas sağlanmalıdır.

device (str veya torch.device, opsiyonel) : Timestep'lerin taşınacağı cihaz. None ise timestep'ler taşınmaz.

timesteps (list[int], isteğe bağlı) : İsteğe bağlı zaman adımları zaman çizelgesini desteklemek için kullanılan özel zaman adımları. None ise, zaman adımları timestep_spacing özniteliğine dayanılarak oluşturulur. timesteps geçirilirse, num_inference_steps ve sigmas None olmalıdır ve timestep_spacing özniteliği yok sayılır.

sigmas (list[float], isteğe bağlı) : İsteğe bağlı zaman adımları zaman çizelgesini desteklemek için kullanılan özel sigmalar. None ise, zaman adımları ve sigmalar ilgili zamanlayıcı özniteliklerine dayanılarak oluşturulur. sigmas geçirilirse, num_inference_steps ve timesteps None olmalıdır ve zaman adımları özel sigmalar zaman çizelgesine dayanılarak oluşturulur.

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[[diffusers.EulerDiscreteScheduler.step]]

step(model_output: Tensor, timestep: typing.Union[float, torch.Tensor], sample: Tensor, s_churn: float = 0.0, s_tmin: float = 0.0, s_tmax: float = inf, s_noise: float = 1.0, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True)

Kaynak

Parametreler:

model_output (torch.Tensor) : Öğrenen difüzyon modelinden gelen doğrudan çıktı.

timestep (float veya torch.Tensor) : 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.

s_churn (float, isteğe bağlı, varsayılan 0.0) : Örnekleme sırasında eklenen gürültü miktarını kontrol eden stokastisite parametresi. Daha yüksek değerler rastgeleliği artırır.

s_tmin (float, opsiyonel, varsayılan 0.0) : Stokastisitenin uygulanması için minimum zaman adımı eşiği. Sadece bu değerin üzerindeki zaman adımlarına gürültü eklenir.

s_tmax (float, opsiyonel, varsayılan inf) : Stokastisitenin uygulanması için maksimum zaman adımı eşiği. Sadece bu değerin altındaki zaman adımlarına gürültü eklenir.

s_noise (float, isteğe bağlı, varsayılan 1.0) : Örneğe eklenen gürültü için ölçekleme faktörü.

generator (torch.Generator, isteğe bağlı) : Yeniden üretilebilir örneklemeler için rastgele sayı üreteci.

return_dict (bool, isteğe bağlı, varsayılan True) : EulerDiscreteSchedulerOutput veya tuple döndürülüp döndürülmemeye karar verir.

Dönüş: EulerDiscreteSchedulerOutput veya tuple

return_dict True ise EulerDiscreteSchedulerOutput döndürülür, aksi takdirde bir tuple döndürülür; bu tuple'ın ilk öğesi örnek tensörü, ikinci öğesi ise tahmin edilen orijinal örnektir.

Ö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.

EulerDiscreteSchedulerOutput[[diffusers.schedulers.scheduling_euler_discrete.EulerDiscreteSchedulerOutput]]

diffusers.schedulers.scheduling_euler_discrete.EulerDiscreteSchedulerOutput[[diffusers.schedulers.scheduling_euler_discrete.EulerDiscreteSchedulerOutput]]

diffusers.schedulers.scheduling_euler_discrete.EulerDiscreteSchedulerOutput(prev_sample: Tensor, pred_original_sample: typing.Optional[torch.Tensor] = None)

Kaynak

Parametreler:

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

pred_original_sample (torch.Tensor, görüntüler için (batch_size, num_channels, height, width) boyutunda) : Mevcut zaman adımındaki model çıktısına dayalı olarak tahmin edilen gürültüsü azaltılmış örnek (x_{0}). pred_original_sample, ilerlemeyi önizlemek veya yönlendirme için kullanılabilir.

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

Xet Storage Details

Size:
15.2 kB
·
Xet hash:
cb28edeeef976d16f23da09c3a611e36a42ea3303b7521c24ad4f91fd9b7e148

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.