Buckets:

hf-doc-build/doc / diffusers /main /tr /api /models /autoencoderkl.md
mishig's picture
|
download
raw
12.6 kB

AutoencoderKL

KL kaybı içeren varyasyonel otoenkoder (VAE) modeli, Diederik P. Kingma ve Max Welling tarafından Auto-Encoding Variational Bayes makalesinde tanıtılmıştır. 🤗 Diffusers'ta bu model, görüntüleri latentlere kodlamak ve latent temsilleri görüntülere çözmek için kullanılır.

Makalenin özeti şudur:

Yönlenmiş olasılıksal modellerde, çözülmesi güç posterior dağılımlara sahip sürekli gizli değişkenlerin ve büyük veri kümelerinin varlığında verimli çıkarım ve öğrenme nasıl gerçekleştirilebilir? Büyük veri kümelerine ölçeklenebilen ve bazı hafif türevlenebilirlik koşulları altında, çözülmesi güç durumda bile çalışan stokastik varyansiyonel çıkarım ve öğrenme algoritması sunuyoruz. Katkılarımız iki yönlüdür. Birincisi, varyansiyonel alt sınırın yeniden parametrelendirilmesinin, standart stokastik gradyan yöntemleriyle doğrudan optimize edilebilen bir alt sınır tahmincisi ürettiğini gösteriyoruz. İkincisi, veri noktası başına sürekli gizli değişkenlere sahip i.i.d. veri kümeleri için, önerilen alt sınır tahmincisi kullanılarak çözülmesi güç posteriöre yaklaşık bir çıkarım modeli (aynı zamanda tanıtım modeli olarak da adlandırılır) sığdırarak posterior çıkarımın özellikle verimli hale getirilebileceğini gösteriyoruz. Teorik avantajlar, deneysel sonuçlarda yansıtılmaktadır.

Orijinal formattan yükleme

Varsayılan olarak AutoencoderKL, from_pretrained() ile yüklenmelidir; ancak aşağıdaki gibi FromOriginalModelMixin.from_single_file kullanılarak orijinal biçimden de yüklenebilir:

from diffusers import AutoencoderKL

url = "https://huggingface.co/stabilityai/sd-vae-ft-mse-original/blob/main/vae-ft-mse-840000-ema-pruned.safetensors"  # can also be a local file
model = AutoencoderKL.from_single_file(url)

AutoencoderKL[[diffusers.AutoencoderKL]]

diffusers.AutoencoderKL[[diffusers.AutoencoderKL]]

diffusers.AutoencoderKL(in_channels: int = 3, out_channels: int = 3, down_block_types: tuple = ('DownEncoderBlock2D',), up_block_types: tuple = ('UpDecoderBlock2D',), block_out_channels: tuple = (64,), layers_per_block: int = 1, act_fn: str = 'silu', latent_channels: int = 4, norm_num_groups: int = 32, sample_size: int = 32, scaling_factor: float = 0.18215, shift_factor: float | None = None, latents_mean: tuple[float] | None = None, latents_std: tuple[float] | None = None, force_upcast: bool = True, use_quant_conv: bool = True, use_post_quant_conv: bool = True, mid_block_add_attention: bool = True)

Kaynak

Parametreler:

in_channels (int, isteğe bağlı, varsayılan 3) : Girdi görüntüsündeki kanal sayısı.

out_channels (int, isteğe bağlı, varsayılan 3) : Çıktıdaki kanal sayısı.

down_block_types (tuple[str], isteğe bağlı, varsayılan ("DownEncoderBlock2D",)) : aşağı örneklem bloğu türlerinin tuple'ı.

up_block_types (tuple[str], isteğe bağlı, varsayılan ("UpDecoderBlock2D",)) : örnekleme bloğu türlerinin tuple'ı.

block_out_channels (tuple[int], isteğe bağlı, varsayılan (64,)) : blok çıktı kanalları tuple'ı.

act_fn (str, isteğe bağlı, varsayılan "silu") : Kullanılacak aktivasyon fonksiyonu.

latent_channels (int, isteğe bağlı, varsayılan 4) : Gizli uzaydaki kanal sayısı.

sample_size (int, isteğe bağlı, varsayılan 32) : Örnek giriş boyutu.

scaling_factor (float, opsiyonel, varsayılan 0.18215) : Eğitim setinin ilk partisi kullanılarak hesaplanan, eğitilmiş gizli uzayın bileşen bazlı standart sapması. Bu değer, difüzyon modeli eğitilirken gizli uzayın birim varyansa ölçeklenmesi için kullanılır. Gizli değişkenler, difüzyon modeline aktarılmadan önce z = z * scaling_factor formülüyle ölçeklenir. Kod çözülürken, gizli değişkenler şu formülle orijinal ölçeğe geri döndürülür: z = 1 / scaling_factor * z. Daha fazla ayrıntı için High-Resolution Image Synthesis with Latent Diffusion Models makalesinin 4.3.2 ve D.1 bölümlerine bakınız.

force_upcast (bool, isteğe bağlı, varsayılan True) : Etkinleştirilirse, SD-XL gibi yüksek görüntü çözünürlüğü boru hatlarında VAE'nin float32'de çalışmasını zorlar. VAE, çok fazla hassasiyet kaybı olmadan daha düşük bir aralığa ince ayarlanabilir / eğitilebilir; bu durumda force_upcast False olarak ayarlanabilir - bkz: https://huggingface.co/madebyollin/sdxl-vae-fp16-fix

mid_block_add_attention (bool, isteğe bağlı, varsayılan True) : Etkinleştirilirse, Encoder ve Decoder'ın mid_block bileşenlerinde dikkat (attention) blokları bulunur. False olarak ayarlanırsa, mid_block yalnızca resnet blokları içerir.

Görselleri latentlere kodlamak ve latent temsilleri görsellere çözmek için KL kaybı kullanan bir VAE modeli.

Bu model ModelMixin sınıfından devralır. Tüm modeller için uygulanan genel yöntemlerini (indirme veya kaydetme gibi) görmek için üst sınıfın belgelendirmesine bakın.

decode[[diffusers.AutoencoderKL.decode]]

decode(z: FloatTensor, return_dict: bool = True, generator = None)

Kaynak

Parametreler:

z (torch.Tensor) : Gizil vektörlerin giriş partisi.

return_dict (bool, isteğe bağlı, varsayılan True) : Düz bir tuple yerine ~models.vae.DecoderOutput döndürülüp döndürülmemesi.

Dönüş: ~models.vae.DecoderOutput veya tuple

return_dict True ise, ~models.vae.DecoderOutput döndürülür, aksi takdirde düz bir tuple döndürülür.

Bir görüntü grubunu çözümlen.

encode[[diffusers.AutoencoderKL.encode]]

encode(x: Tensor, return_dict: bool = True)

Kaynak

Parametreler:

x (torch.Tensor) : Giriş görüntü partisi.

return_dict (bool, isteğe bağlı, varsayılan True) : Düz bir tuple yerine ~models.autoencoder_kl.AutoencoderKLOutput döndürülüp döndürülmediğini belirtir.

Dönüş:

Kodlanmış görüntülerin gizil (latent) temsilleri. return_dict True ise bir ~models.autoencoder_kl.AutoencoderKLOutput döndürülür, aksi halde düz bir tuple döndürülür.

Bir görüntü grubunu latentlere kodlayın.

forward[[diffusers.AutoencoderKL.forward]]

forward(sample: Tensor, sample_posterior: bool = False, return_dict: bool = True, generator: typing.Optional[torch.Generator] = None)

Kaynak

Parametreler:

sample (torch.Tensor) : Girdi örneği.

sample_posterior (bool, isteğe bağlı, varsayılan False) : Posterior'dan örneklemeye alınıp alınmayacağı.

return_dict (bool, isteğe bağlı, varsayılan True) : Düz bir tuple yerine DecoderOutput döndürülüp döndürülmemesi.

generator (torch.Generator, isteğe bağlı) : Örnekleme işlemini deterministik hale getirmek için kullanılan bir torch.Generator.

Dönüş: ~models.vae.DecoderOutput veya tuple

return_dict True ise, ~models.vae.DecoderOutput döndürülür; aksi halde düz bir tuple döndürülür.

fuse_qkv_projections[[diffusers.AutoencoderKL.fuse_qkv_projections]]

fuse_qkv_projections()

Kaynak

Füzyonlu QKV projeksiyonlarını etkinleştirir. Kendi dikkat (self-attention) modülleri için tüm projeksiyon matrisleri (yani sorgu, anahtar, değer) füzyonlanır. Çapraz dikkat (cross-attention) modülleri için anahtar ve değer projeksiyon matrisleri füzyonlanır.

> Bu API 🧪 deneyseldir.

set_default_attn_processor[[diffusers.AutoencoderKL.set_default_attn_processor]]

set_default_attn_processor()

Kaynak

Özel dikkat işleyicilerini devre dışı bırakır ve varsayılan dikkat uygulamasını ayarlar.

tiled_decode[[diffusers.AutoencoderKL.tiled_decode]]

tiled_decode(z: Tensor, return_dict: bool = True)

Kaynak

Parametreler:

z (torch.Tensor) : Gizil vektörlerin giriş partisi.

return_dict (bool, isteğe bağlı, varsayılan True) : Düz bir tuple yerine ~models.vae.DecoderOutput döndürülecek mi?

Dönüş: ~models.vae.DecoderOutput veya tuple

return_dict True ise, ~models.vae.DecoderOutput döndürülür, aksi takdirde düz bir tuple döndürülür.

Bir görüntü grubunu karolarlı bir çözücü kullanarak çözümlen.

tiled_encode[[diffusers.AutoencoderKL.tiled_encode]]

tiled_encode(x: Tensor, return_dict: bool = True)

Kaynak

Parametreler:

x (torch.Tensor) : Giriş görüntü partisi.

return_dict (bool, isteğe bağlı, varsayılan True) : Düz bir tuple yerine ~models.autoencoder_kl.AutoencoderKLOutput döndürülüp döndürülmediğini belirtir.

Dönüş: ~models.autoencoder_kl.AutoencoderKLOutput veya tuple

return_dict True ise, ~models.autoencoder_kl.AutoencoderKLOutput döndürülür, aksi takdirde düz bir tuple döndürülür.

Bir görüntü grubunu, karolalı bir kodlayıcı kullanarak kodlayın.

Bu seçenek etkinleştirildiğinde, VAE, kodlamayı birden fazla adımda hesaplamak için girdi tensörünü karolara böler. Bu, bellek kullanımının görüntü boyutundan bağımsız olarak sabit kalmasını sağlamak için faydalıdır. Karolarla kodlamanın nihai sonucu, her karonun farklı bir kodlayıcı (encoder) kullanması nedeniyle karolasız kodlamadan farklıdır. Karola artefaktlarını önlemek için karolar üst üste biner ve pürüzsüz bir çıktı oluşturmak üzere birleştirilir. Çıktıda hâlâ karola boyutunda değişimler görebilirsiniz, ancak bunlar çok daha az belirgin olmalıdır.

unfuse_qkv_projections[[diffusers.AutoencoderKL.unfuse_qkv_projections]]

unfuse_qkv_projections()

Kaynak

Etkinleştirilmişse birleşik QKV projeksiyonunu devre dışı bırakır.

> Bu API 🧪 deneyseldir.

AutoencoderKLOutput[[diffusers.models.modeling_outputs.AutoencoderKLOutput]]

diffusers.models.modeling_outputs.AutoencoderKLOutput[[diffusers.models.modeling_outputs.AutoencoderKLOutput]]

diffusers.models.modeling_outputs.AutoencoderKLOutput(latent_dist: DiagonalGaussianDistribution)

Kaynak

Parametreler:

latent_dist (DiagonalGaussianDistribution) : Encoder'ın DiagonalGaussianDistribution ortalama ve logvar olarak temsil edilen kodlanmış çıktıları. DiagonalGaussianDistribution, dağılımdan latent örneklemeye olanak tanır.

AutoencoderKL kodlama yönteminin çıktısı.

DecoderOutput[[diffusers.models.autoencoders.vae.DecoderOutput]]

diffusers.models.autoencoders.vae.DecoderOutput[[diffusers.models.autoencoders.vae.DecoderOutput]]

diffusers.models.autoencoders.vae.DecoderOutput(sample: Tensor, commit_loss: typing.Optional[torch.FloatTensor] = None)

Kaynak

Parametreler:

sample (torch.Tensor, şekli (batch_size, num_channels, height, width)) : Modelin son katmanından çözümlenmiş çıktı örneği.

Çözümleme yönteminin çıktısı.

Xet Storage Details

Size:
12.6 kB
·
Xet hash:
0d6b5ed9557e89079df74fd6c39b44058559bc18947ed1cb559b2acb5ca3e3de

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