Generazione di immagini anime implementando DC GAN Paper tramite Pytorch
AnimeGAN - Deep Convolutional Generative Adverserial Network
Implementazione PyTorch di DCGAN introdotta nel documento: Apprendimento della rappresentazione non supervisionato con reti convoluzionali generative avversarie profonde , Alec Radford, Luke Metz, Soumith Chintala.
installa mysql 5.7 ubuntu
introduzione
I GAN (Generative Adversarial Network) sono uno degli algoritmi di Machine Learning più popolari (e più interessanti) sviluppati negli ultimi tempi. Appartengono a un insieme di algoritmi chiamati modelli generativi, che sono ampiamente utilizzati per compiti di apprendimento non supervisionati che mirano ad apprendere la struttura sottostante dei dati dati. Come suggerisce il nome, i GAN ti consentono di generare nuovi dati invisibili che imitano i dati reali forniti. Tuttavia, i GAN pongono problemi nell'addestramento e richiedono iperparametri accuratamente sintonizzati. Questo documento mira a risolvere questo problema.
DCGAN è uno dei progetti di rete più popolari e di successo per GAN. Si compone principalmente di livelli di convoluzione senza pool massimo o livelli completamente collegati. Utilizza convoluzioni strided e convoluzioni trasposte rispettivamente per il downsampling e l'upsampling.
Architettura del generatore di DCGAN
Progettazione di rete di DCGAN:
cancelletto in excel
- Sostituisci tutti i livelli di pooling con circonvoluzioni strided.
- Rimuovi tutti i livelli completamente collegati.
- Usa le circonvoluzioni trasposte per il sovracampionamento.
- Utilizzare la normalizzazione batch dopo ogni livello tranne dopo il livello di output del generatore e il livello di input del discriminatore.
- Utilizzare la non linearità ReLU per ogni livello nel generatore, ad eccezione del livello di output, utilizzare tanh.
- Usa la non linearità Leaky-ReLU per ogni livello del disciminator eccetto per l'uso del livello di output sigmoid.
Iperparametri per questa implementazione
Gli iperparametri sono scelti come indicato nel documento.
- dimensione mini-lotto: 128
- tasso di apprendimento: 0,0002
- termine di momento beta1: 0.5
- pendenza della perdita di LeakyReLU: 0.2
- Per l'ottimizzatore è stato utilizzato Adam (con beta2 = 0,999) al posto di SGD come descritto nel documento.
Curve di perdita
D: discriminatore, G: generatore
Esegui allenamento
python train.py --wandbkey={{WANDB KEY}} --projectname=AnimeGAN --wandbentity={{WANDB USERNAME}} --tensorboard=True --dataset=anime --kaggle_user={{KAGGLE USERNAME}} --kaggle_key={{KAGGLE API KEY}} --batch_size=32 --epoch=5 --load_checkpoints=True
Riferimenti
- Alec Radford, Luke Metz, Soumith Chintala. Apprendimento non supervisionato della rappresentazione con reti convolutive generative avversarie profonde. [ archivio ]
- Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio. Reti generative avversarie. NIP 2014 [ archivio ]
- Ian Goodfellow. Esercitazione: Reti generative avversarie. NIP 2016 [ archivio ]
- Tutorial DCGAN. [ https://pytorch.org/tutorials/beginner/dcgan_faces_tutorial.html ]
- Documenti PyTorch. [ https://pytorch.org/docs/stable/index.html ]
Scarica i dettagli:
Autore: rohitkuki
Link per scaricare: Scarica il codice sorgente
Sito ufficiale: https://github.com/rohitkuk/AnimeGAN
Licenza: CC0-1.0
Reagire al modello di pagina del profilo utente
#images #pytorch #machine-learning