ganhacks README

The project's README from github.com/soumith/ganhacks. As one markdown file: README.md.

(this list is no longer maintained, and I am not sure how relevant it is in 2020)

How to Train a GAN? Tips and tricks to make GANs work

While research in Generative Adversarial Networks (GANs) continues to improve the fundamental stability of these models, we use a bunch of tricks to train them and make them stable day to day.

Here are a summary of some of the tricks.

Here's a link to the authors of this document

If you find a trick that is particularly useful in practice, please open a Pull Request to add it to the document. If we find it to be reasonable and verified, we will merge it in.

1. Normalize the inputs

2: A modified loss function

In GAN papers, the loss function to optimize G is min (log 1-D), but in practice folks practically use max log D

In practice, works well:

3: Use a spherical Z

cube

sphere

4: BatchNorm

batchmix

5: Avoid Sparse Gradients: ReLU, MaxPool

6: Use Soft and Noisy Labels

7: DCGAN / Hybrid Models

8: Use stability tricks from RL

9: Use the ADAM Optimizer

10: Track failures early

11: Dont balance loss via statistics (unless you have a good reason to)

For example

while lossD > A:
  train D
while lossG > B:
  train G

12: If you have labels, use them

13: Add noise to inputs, decay over time

14: [notsure] Train discriminator more (sometimes)

15: [notsure] Batch Discrimination

16: Discrete variables in Conditional GANs

17: Use Dropouts in G in both train and test phase

Authors

ganhacks (soumith/ganhacks)

Searching Database…

11.6K ·GitHub
Что это такое?Короткая шпаргалка с практическими советами и приёмами для обучения генеративно-состязательных сетей (GAN). Изначально она была раздаточным материалом к сессии «How to Train a GAN?» на NIPS 2016.
Это инструмент или просто список приёмов?Это простой документ в формате markdown, а не программа. Это нумерованный список из 17 приёмов, в том числе нормализация, правки функции потерь, сглаживание меток и выбор оптимизатора. Ничего запускать или устанавливать не нужно, кода в нём нет.
Как устроен список?Приёмы пронумерованы от 1 до 17. Каждый из них — короткая самостоятельная техника, например батч-нормализация, сферическое Z, мягкие или шумные метки, DCGAN, оптимизатор Adam или раннее отслеживание сбоев. Рядом указаны статьи, в которых они описаны.
Этот список всё ещё поддерживается?Нет. В README прямо сказано, что он не обновлялся с момента исходного доклада 2016 года, а автор даже не уверен, насколько приёмы актуальны по состоянию на 2020 год.
Рекомендует ли он конкретную архитектуру GAN для старта?Да, он советует по возможности использовать DCGAN, так как она работает надёжно. Если DCGAN для вашего случая нестабильна, можно перейти на гибрид вроде KL+GAN или VAE+GAN.
Какой оптимизатор он предлагает?Оптимизатор Adam для генератора, а SGD для дискриминатора — как альтернативная комбинация.
Кто составил этот список?Его составили Soumith Chintala, Emily Denton, Martin Arjovsky и Michael Mathieu.
Creator
soumith
Size
0.8 MB
Stars
11.6K
Updated
CommitMar 05
Age
9y
Commits · 90 Days