Buckets:

mishig's picture
|
download
raw
6.54 kB
# VQModel
El modelo VQ-VAE se introdujo en [Neural Discrete Representation Learning](https://huggingface.co/papers/1711.00937) de Aaron van den Oord, Oriol Vinyals y Koray Kavukcuoglu. El modelo se utiliza en 馃 Diffusers para decodificar representaciones latentes en im谩genes. A diferencia de [AutoencoderKL](/docs/diffusers/main/es/api/models/autoencoderkl#diffusers.AutoencoderKL), el [VQModel](/docs/diffusers/main/es/api/models/vq#diffusers.VQModel) funciona en un espacio latente cuantizado.
El resumen del art铆culo es:
*Aprender representaciones 煤tiles sin supervisi贸n sigue siendo un desaf铆o clave en el aprendizaje autom谩tico. En este art铆culo, proponemos un modelo generativo simple pero potente que aprende dichas representaciones discretas. Nuestro modelo, el Vector Quantised-Variational AutoEncoder (VQ-VAE), difiere de los VAE en dos aspectos clave: la red codificadora emite c贸digos discretos, en lugar de continuos; y la distribuci贸n a priori se aprende en lugar de ser est谩tica. Para aprender una representaci贸n latente discreta, incorporamos ideas de la cuantizaci贸n de vectores (VQ). El uso del m茅todo VQ permite al modelo evitar problemas de "colapso posterior", donde los latentes se ignoran cuando se emparejan con un decodificador autoregresivo potente, un fen贸meno t铆picamente observado en el marco de los VAE. Al emparejar estas representaciones con una distribuci贸n a priori autoregresiva, el modelo puede generar im谩genes, videos y voz de alta calidad, as铆 como realizar conversiones de hablante de alta calidad y aprendizaje no supervisado de fonemas, lo que proporciona m谩s evidencia de la utilidad de las representaciones aprendidas.*
## VQModel[[diffusers.VQModel]]
#### diffusers.VQModel[[diffusers.VQModel]]
```python
diffusers.VQModel(in_channels: int = 3, out_channels: int = 3, down_block_types: tuple[str, ...] = ('DownEncoderBlock2D',), up_block_types: tuple[str, ...] = ('UpDecoderBlock2D',), block_out_channels: tuple[int, ...] = (64,), layers_per_block: int = 1, act_fn: str = 'silu', latent_channels: int = 3, sample_size: int = 32, num_vq_embeddings: int = 256, norm_num_groups: int = 32, vq_embed_dim: int | None = None, scaling_factor: float = 0.18215, norm_type: str = 'group', mid_block_add_attention = True, lookup_from_codebook = False, force_upcast = False)
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/vq_model.py#L40)
**Par谩metros:**
in_channels (int, *opcional*, valor predeterminado 3) : N煤mero de canales en la imagen de entrada.
out_channels (int, *opcional*, valor predeterminado 3) : N煤mero de canales en la salida.
down_block_types (`tuple[str]`, *opcional*, por defecto `("DownEncoderBlock2D",)`) : tupla de tipos de bloques de muestreo descendente.
up_block_types (`tuple[str]`, *opcional*, por defecto `("UpDecoderBlock2D",)`) : tupla de tipos de bloques de remuestreo ascendente.
block_out_channels (`tuple[int]`, *opcional*, valor predeterminado `(64,)`) : tupla de canales de salida de bloque.
layers_per_block (`int`, *opcional*, valor predeterminado `1`) : N煤mero de capas por bloque.
act_fn (`str`, *opcional*, por defecto `"silu"`) : La funci贸n de activaci贸n a utilizar.
latent_channels (`int`, *opcional*, valor predeterminado `3`) : N煤mero de canales en el espacio latente.
sample_size (`int`, *opcional*, valor predeterminado `32`) : Tama帽o de entrada de muestra.
num_vq_embeddings (`int`, *opcional*, valor predeterminado `256`) : N煤mero de vectores del libro de c贸digos en el VQ-VAE.
norm_num_groups (`int`, *opcional*, valor predeterminado `32`) : N煤mero de grupos para las capas de normalizaci贸n.
vq_embed_dim (`int`, *opcional*) : Dimensi贸n oculta de los vectores del libro de c贸digos en el VQ-VAE.
scaling_factor (`float`, *opcional*, valor predeterminado `0.18215`) : La desviaci贸n est谩ndar por componente del espacio latente entrenado, calculada utilizando el primer lote del conjunto de entrenamiento. Esto se utiliza para escalar el espacio latente para que tenga varianza unitaria al entrenar el modelo de difusi贸n. Los latentes se escalan con la f贸rmula `z = z * scaling_factor` antes de ser pasados al modelo de difusi贸n. Al decodificar, los latentes se escalan de vuelta a la escala original con la f贸rmula: `z = 1 / scaling_factor * z`. Para m谩s detalles, consulte las secciones 4.3.2 y D.1 del art铆culo [High-Resolution Image Synthesis with Latent Diffusion Models](https://huggingface.co/papers/2112.10752).
norm_type (`str`, *opcional*, por defecto `"group"`) : Tipo de capa de normalizaci贸n a utilizar. Puede ser `"group"` o `"spatial"`.
Un modelo VQ-VAE para decodificar representaciones latentes.
Este modelo hereda de [ModelMixin](/docs/diffusers/main/es/api/models/overview#diffusers.ModelMixin). Consulta la documentaci贸n de la superclase para sus m茅todos gen茅ricos implementados para todos los modelos (como la descarga o el guardado).
#### forward[[diffusers.VQModel.forward]]
```python
forward(sample: Tensor, return_dict: bool = True)
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/vq_model.py#L163)
**Par谩metros:**
sample (`torch.Tensor`) : Muestra de entrada.
return_dict (`bool`, *opcional*, por defecto `True`) : Indica si se debe devolver un [models.autoencoders.vq_model.VQEncoderOutput](/docs/diffusers/main/es/api/models/vq#diffusers.models.autoencoders.vq_model.VQEncoderOutput) en lugar de una tupla simple.
**Devuelve:** [VQEncoderOutput](/docs/diffusers/main/es/api/models/vq#diffusers.models.autoencoders.vq_model.VQEncoderOutput) o `tuple`
Si return_dict es True, se devuelve un [VQEncoderOutput](/docs/diffusers/main/es/api/models/vq#diffusers.models.autoencoders.vq_model.VQEncoderOutput); en caso contrario, se devuelve una `tuple` simple.
El m茅todo forward de [VQModel](/docs/diffusers/main/es/api/models/vq#diffusers.VQModel).
## VQEncoderOutput[[diffusers.models.autoencoders.vq_model.VQEncoderOutput]]
#### diffusers.models.autoencoders.vq_model.VQEncoderOutput[[diffusers.models.autoencoders.vq_model.VQEncoderOutput]]
```python
diffusers.models.autoencoders.vq_model.VQEncoderOutput(latents: Tensor)
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/vq_model.py#L28)
**Par谩metros:**
latents (`torch.Tensor` de forma `(batch_size, num_channels, height, width)`) : La muestra de salida codificada de la 煤ltima capa del modelo.
Salida del m茅todo de codificaci贸n de VQModel.

Xet Storage Details

Size:
6.54 kB
路
Xet hash:
8505cc250cce81bba210384313619ab43ea2958a1c6792e3d0d3eec17d3ffb46

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