Diffusers documentation
VQModel
VQModel
VQ-VAE modeli, Aaron van den Oord, Oriol Vinyals ve Koray Kavukcuoglu tarafından Neural Discrete Representation Learning makalesinde tanıtılmıştır. Model, 🤗 Diffusers içinde gizli temsillerin görüntülere dönüştürülmesi için kullanılır. AutoencoderKL'den farklı olarak VQModel, kuantize edilmiş bir gizli uzayda çalışır.
Makalenin özeti şudur:
Gözetimsiz olarak faydalı temsiller öğrenmek, makine öğrenmesinde hâlâ temel bir zorluktur. Bu makalede, bu tür ayrık temsilleri öğrenen basit ama güçlü bir üretken model öneriyoruz. Modelimiz olan Vektör Kuantize Edilmiş Varyasyonel Otoenkoder (VQ-VAE), VAE'lerden iki temel açıdan farklıdır: kodlayıcı ağ, sürekli kodlar yerine ayrık kodlar üretir; ve öncül dağılım statik değil, öğrenilir. Ayrık gizli bir temsil öğrenmek için vektör kuantizasyonundan (VQ) fikirler benimsiyoruz. VQ yönteminin kullanılması, güçlü bir otoregresif çözücüyle eşleştirildiğinde gizli değişkenlerin göz ardı edildiği “posterior çökmesi” sorunu gibi, VAE çerçevesinde tipik olarak gözlemlenen sorunların aşılmasını sağlar. Bu temsiller bir otoregresif öncül dağılımla eşleştirildiğinde, model yüksek kaliteli görüntüler, videolar ve konuşmalar üretebilir; ayrıca yüksek kaliteli konuşmacı dönüşümü ve fonemlerin gözetimsiz öğrenimini gerçekleştirebilir. Bu durum, öğrenilen temsillerin faydasına dair ek kanıtlar sunar.
VQModel
sınıf diffusers.VQModel
< source >( in_channels: int = 3out_channels: int = 3down_block_types: tuple = ('DownEncoderBlock2D',)up_block_types: tuple = ('UpDecoderBlock2D',)block_out_channels: tuple = (64,)layers_per_block: int = 1act_fn: str = 'silu'latent_channels: int = 3sample_size: int = 32num_vq_embeddings: int = 256norm_num_groups: int = 32vq_embed_dim: int | None = Nonescaling_factor: float = 0.18215norm_type: str = 'group'mid_block_add_attention = Truelookup_from_codebook = Falseforce_upcast = False )
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",)) — örnekleme azaltma blok türlerinin tuple'ı. - up_block_types (
tuple[str], isteğe bağlı, varsayılan("UpDecoderBlock2D",)) — Yukarı örneklem bloğu türlerinin tuple'ı. - block_out_channels (
tuple[int], isteğe bağlı, varsayılan(64,)) — Blok çıktı kanallarının tuple'ı. - layers_per_block (
int, isteğe bağlı, varsayılan1) — Blok başına katman sayısı. - act_fn (
str, isteğe bağlı, varsayılan"silu") — Kullanılacak aktivasyon fonksiyonu. - latent_channels (
int, isteğe bağlı, varsayılan3) — Gizli uzaydaki kanal sayısı. - sample_size (
int, isteğe bağlı, varsayılan32) — Örnek giriş boyutu. - num_vq_embeddings (
int, isteğe bağlı, varsayılan256) — VQ-VAE'deki kod kitabı vektörlerinin sayısı. - norm_num_groups (
int, isteğe bağlı, varsayılan32) — Normalizasyon katmanları için grup sayısı. - vq_embed_dim (
int, isteğe bağlı) — VQ-VAE'deki kod kitabı vektörlerinin gizli boyutu. - scaling_factor (
float, isteğe bağlı, varsayılan0.18215) — Eğitim setinin ilk partisi kullanılarak hesaplanan, eğitilmiş gizli uzayın bileşen bazlı standart sapması. Bu değer, difüzyon modelinin eğitimi sırasında gizli uzayın birim varyansa sahip olacak şekilde ölçeklendirilmesinde kullanılır. Gizli değişkenler, difüzyon modeline aktarılmadan öncez = z * scaling_factorformülüyle ölçeklenir. Kod çözme sırasında ise gizli değişkenler,z = 1 / scaling_factor * zformülüyle orijinal ölçeğe geri döndürülür. 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. - norm_type (
str, isteğe bağlı, varsayılan"group") — Kullanılacak normalizasyon katmanı türü."group"veya"spatial"olabilir.
Gizil temsilleri çözmek için bir VQ-VAE modeli.
Bu model ModelMixin sınıfından devralır. Tüm modeller için uygulanan genel yöntemleri (indirme veya kaydetme gibi) görmek için üst sınıfın belgelendirmesine bakın.
forward
< source >( sample: Tensorreturn_dict: bool = True ) → VQEncoderOutput or tuple
Parametreler
- sample (
torch.Tensor) — Girdi örneği. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine models.autoencoders.vq_model.VQEncoderOutput döndürülüp döndürülmemesi.
Dönüş değeri
VQEncoderOutput veya tuple
return_dict True ise, VQEncoderOutput döndürülür, aksi takdirde düz bir tuple döndürülür.
VQModel ileri yöntemi.
VQEncoderOutput
sınıf diffusers.models.autoencoders.vq_model.VQEncoderOutput
< source >( latents: Tensor )
VQModel kodlama yönteminin çıktısı.