Welcome to the AutoEncoderToolkit.jl
GitHub repository. This package provides
a simple interface for training and using Flux.jl-based
autoencoders and variational autoencoders in Julia.
You can install AutoEncoderToolkit.jl
using the Julia package manager. From
the Julia REPL, type ]
to enter the Pkg REPL mode and run:
add AutoEncoderToolkit
The idea behind AutoEncoderToolkit.jl
is to take advantage of Julia's multiple
dispatch to provide a simple and flexible interface for training and using
different types of autoencoders. The package is designed to be modular and allow
the user to easily define and test custom encoder and decoder architectures.
Moreover, when it comes to variational autoencoders, AutoEncoderToolkit.jl
takes a probabilistic perspective, where the type of encoders and decoders
defines (via multiple dispatch) the corresponding distribution used within the
corresponding loss function.
For more information, please refer to the documentation.
model | module | description |
---|---|---|
Autoencoder | AEs |
Vanilla deterministic autoencoder |
Variational Autoencoder | VAEs |
Vanilla variational autoencoder |
β-VAE | VAEs |
beta-VAE to weigh the reconstruction vs. KL divergence in ELBO |
MMD-VAEs | MMDs |
Maximum-Mean Discrepancy Variational Autoencoders |
InfoMax-VAEs | InfoMaxVAEs |
Information Maximization Variational Autoencoders |
Hamiltonian VAE | HVAEs |
Hamiltonian Variational Autoencoders |
Riemannian Hamiltonian-VAE | RHVAEs |
Riemannian-Hamiltonian Variational Autoencoder |
Some tests are failing only when running on GitHub Actions. Locally, all tests pass. The error in Github Actions shows up when testing the computation of loss function gradients as:
Got exception outside of a @test
BoundsError: attempt to access 16-element Vector{UInt8} at index [0]
PRs to fix this issue are welcome.
Released under the MIT License.
Author & Maintainer: Manuel Razo-Mejia