VAE имеет модульный дизайн. Энкодер, декодер и VAE представляют собой 3 модели, которые разделяют вес. После обучения модели VAE, энкодер может использоваться для генерации скрытых векторов. Декодер может использоваться для генерации изображений шрифтов путем отбора проб скрытого вектора из гауссового распределения со средним = 0 и std = 1.
| энкодер | декодер |
|---|---|
![]() | ![]() |
размер набора данных = поезд 5000 и валидация 1000 на каждый класс
ширина, высота = 112, 112
Размер шрифта = 25
Используется символы = "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ"
изображения генерируются с помощью font2png.py
шрифты из Google шрифтов
| idx | Имя шрифта | Образцы изображений |
|---|---|---|
| 0 | Эбгармонд | ![]() ![]() ![]() ![]() ![]() |
| 1 | Pt_serif | ![]() ![]() ![]() ![]() ![]() |
| 2 | Нотозаны | ![]() ![]() ![]() ![]() ![]() |
| 3 | Робото | ![]() ![]() ![]() ![]() ![]() |
| 4 | Праведник | ![]() ![]() ![]() ![]() ![]() |
| 5 | Bangersers | ![]() ![]() ![]() ![]() ![]() |
| 6 | Pacifico | ![]() ![]() ![]() ![]() ![]() |
| 7 | Dancingscript | ![]() ![]() ![]() ![]() ![]() |
| 8 | Unconsolata | ![]() ![]() ![]() ![]() ![]() |
| 9 | VT323 | ![]() ![]() ![]() ![]() ![]() |
| эпоха | 20 | 50 | 200 |
|---|---|---|---|
| бревно | ![]() | ![]() | ![]() |
| скрытое пространство | ![]() | ![]() | ![]() |
1 кадр = 1 партия
1 эпоха = 196 партий
| эпоха = 1 | эпоха = 2 | эпоха = 3 |
|---|---|---|
![]() | ![]() | ![]() |
| эпоха = 4 | эпоха = 5 | эпоха = 6 |
![]() | ![]() | ![]() |

[1] Кингма, Дидерик П. и Макс Веллинг. «Автофорирующий вариационный байеса».
[2] Блог Керас: создание автоэкодоров в Керасе
[3] Пример кераса: vae
[4] Эрик Бернхардссон. «Анализ 50 тыс. Шрифтов с использованием глубоких нейронных сетей»
[5] TJ Torres. "Fontastic Voyage: Генеративные шрифты с состязательными сетями"
[6] Жюльен Деспайс. "Визуализация скрытого пространства - биты глубокого обучения № 2"