O VAE tem um design modular. O codificador, o decodificador e a VAE são 3 modelos que compartilham pesos. Depois de treinar o modelo VAE, o codificador pode ser usado para gerar vetores latentes. O decodificador pode ser usado para gerar imagens de fonte, amostrando o vetor latente a partir de uma distribuição gaussiana com média = 0 e std = 1.
| codificador | decodificador |
|---|---|
![]() | ![]() |
tamanho do conjunto de dados = trem 5000 e validação 1000 por cada classe
largura, altura = 112, 112
Tamanho da fonte = 25
caracteres usados = "aabbccddeeffgghhiijjkkllmnnooppqqrrssttuvwwxxyyzz"
As imagens são geradas com font2png.py
Fontes são do Google Fontes
| idx | Nome da fonte | Exemplo de imagens |
|---|---|---|
| 0 | Ebgaramond | ![]() ![]() ![]() ![]() ![]() |
| 1 | Pt_serif | ![]() ![]() ![]() ![]() ![]() |
| 2 | Notosanos | ![]() ![]() ![]() ![]() ![]() |
| 3 | Roboto | ![]() ![]() ![]() ![]() ![]() |
| 4 | Justo | ![]() ![]() ![]() ![]() ![]() |
| 5 | Bangers | ![]() ![]() ![]() ![]() ![]() |
| 6 | Pacifica | ![]() ![]() ![]() ![]() ![]() |
| 7 | Dancingscript | ![]() ![]() ![]() ![]() ![]() |
| 8 | Inconsolata | ![]() ![]() ![]() ![]() ![]() |
| 9 | VT323 | ![]() ![]() ![]() ![]() ![]() |
| época | 20 | 50 | 200 |
|---|---|---|---|
| registro | ![]() | ![]() | ![]() |
| espaço latente | ![]() | ![]() | ![]() |
1 quadro = 1 lote
1 época = 196 lotes
| Epoch = 1 | Epoch = 2 | Epoch = 3 |
|---|---|---|
![]() | ![]() | ![]() |
| Epoch = 4 | Epoch = 5 | Epoch = 6 |
![]() | ![]() | ![]() |

[1] Kingma, Diederik P. e Max Welling. "Bayes variacionais de codificação automática".
[2] Keras Blog: Construindo Autoencoders em Keras
[3] Keras Exemplo: VAE
[4] Erik Bernhardson. "Analisando fontes de 50k usando redes neurais profundas"
[5] TJ Torres. "Uma viagem fontástica: fontes generativas com redes adversárias"
[6] Julien despois. "Visualização do espaço latente - bits de aprendizado profundo #2"