|
# VQVAE Documentation |
|
|
|
# Introduction |
|
|
|
Vector Quantized Variational AutoEncoders (VQ-VAE) is a type of autoencoder that uses a discrete latent representation. It is particularly useful for tasks that require discrete latent variables, such as text-to-speech and video generation. |
|
|
|
# Usage |
|
|
|
## Initialization |
|
|
|
To initialize a VQVAE model, you can use the `VideoGPTVQVAE` class. This class is a part of the `opensora.models.ae` module. |
|
|
|
```python |
|
from opensora.models.ae import VideoGPTVQVAE |
|
|
|
vqvae = VideoGPTVQVAE() |
|
``` |
|
|
|
### Training |
|
|
|
To train the VQVAE model, you can use the `train_videogpt.sh` script. This script will train the model using the parameters specified in the script. |
|
|
|
```bash |
|
bash scripts/videogpt/train_videogpt.sh |
|
``` |
|
|
|
### Loading Pretrained Models |
|
|
|
You can load a pretrained model using the `download_and_load_model` method. This method will download the checkpoint file and load the model. |
|
|
|
```python |
|
vqvae = VideoGPTVQVAE.download_and_load_model("bair_stride4x2x2") |
|
``` |
|
|
|
Alternatively, you can load a model from a checkpoint using the `load_from_checkpoint` method. |
|
|
|
```python |
|
vqvae = VQVAEModel.load_from_checkpoint("results/VQVAE/checkpoint-1000") |
|
``` |
|
|
|
### Encoding and Decoding |
|
|
|
You can encode a video using the `encode` method. This method will return the encodings and embeddings of the video. |
|
|
|
```python |
|
encodings, embeddings = vqvae.encode(x_vae, include_embeddings=True) |
|
``` |
|
|
|
You can reconstruct a video from its encodings using the decode method. |
|
|
|
```python |
|
video_recon = vqvae.decode(encodings) |
|
``` |
|
|
|
## Testing |
|
|
|
You can test the VQVAE model by reconstructing a video. The `examples/rec_video.py` script provides an example of how to do this. |