Variational Autoencoders (VAEs) are powerful deep learning techniques that allow us to tackle complex problems in machine learning, particularly in the realm of generative models. If you’re venturing into the exciting world of Disentangled VAEs, follow this friendly guide to get you up and running smoothly!
Table of Contents
1. Install
First things first! You’ll need to clone the repository and install the necessary dependencies:
git clone https://github.com/YannDubs/disentangling-vae.git
pip install -r requirements.txt
2. Run
With the installation complete, you can now train or evaluate a model. Use the following command, replacing model-name and param with your model specifications:
python main.py model-name param
For instance, if you want to train the BTCVAE model on the Celeba dataset, you would enter:
python main.py btcvae_celeba_mini -d celeba -l btcvae --lr 0.001 -b 256 -e 5
Output
The results of your training will create a new directory named results/saving-name. Here’s what you can expect inside:
- model.pt: Final trained model
- model-i.pt: Checkpoints of the model after each ‘i’ iterations
- specs.json: Parameters used for running
- training.gif: Visual representation of the training process
- train_losses.log: Logs of losses during training
- test_losses.log: Logs of losses after evaluation
- metrics.log: Contains the Mutual Information Gap and Axis Alignment Metric, if specified.
3. Plot
To visualize your model results, run:
python main_viz.py model-name plot_types param
Example:
python main_viz.py btcvae_celeba_mini gif-traversals reconstruct-traverse -c 7 -r 6 -t 2 --is-posterior
Plotted visualizations will be stored in the results/model-name directory.
4. Data
The system supports various datasets, including:
Note that the dataset will automatically download upon the first execution. Should you encounter issues with downloading, follow these troubleshooting steps:
Troubleshooting Ideas
- Check if the URLs for datasets in utils/datasets.py are working. If not, you may need to update them.
- If the download fails frequently, you might consider downloading the datasets manually.
- Open an issue on GitHub if problems persist.
For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.
5. Our Contributions
We delve beyond mere replication of existing models. A remarkable innovation is the Axis Alignment Metric that provides deep insights into model performance, surpassing traditional qualitative evaluations.
6. Losses Explanation
To explain the differences in losses used across various models, let’s consider the different losses as a menu in a restaurant. Each dish—like our loss functions—has a set theme.
- Standard VAE Loss: Think of this as your classic pizza; it’s a standard option that provides a great base.
- β-VAEH: This is like adding extra toppings to your pizza; it tweaks the flavors delivering a more diversified experience.
- β-VAEB: Similar to creating a unique combination of your favorite ingredients, this option adjusts the balance of flavors during cooking.
- FactorVAE: This is a fusion dish that combines various techniques, creating a comprehensive meal.
- β-TCVAE: This model ensures that each ingredient (or dimension) is seasoned appropriately, leading to a well-rounded dish.
As you venture further, remember that at fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.
Good luck on your journey into the exciting world of Disentangled VAEs!

