DCGAN steht für Deep Convolutional Generative Adversarial Networks, ein Algorithmus, der ein Faltungs-Neuronales Netzwerk zur Erzeugung von Bildern verwendet. Neben dem Originalpapier gibt es viele Artikel, die auf Japanisch erklärt werden.
Sie können dies verwenden, um das Gesichtsbild eines Idols zu generieren, eine Illustration zu generieren und so weiter. Wenn Sie googeln, finden Sie viele interessante Fälle.
Ich hatte das Image eines solchen ** "etwas erstaunlichen" ** DCGAN **, "es scheint schwierig zu sein" **, aber die Implementierung mit TensorFlow wurde veröffentlicht.
Wenn Sie die Demo nur ausprobieren möchten, können Sie sie einfach ausführen, indem Sie ** nur den Befehl gemäß der Prozedur ausführen **.
Unten finden Sie eine Notiz über die Prozedur, die ich ausprobiert habe. (Aktualisiert im Mai 2017)
Git-Klon und führen Sie das Download-Skript aus.
$ python download.py celebA
Ich habe den folgenden Fehler in meiner Umgebung erhalten.
Traceback (most recent call last):
File "download.py", line 20, in <module>
from tqdm import tqdm
ImportError: No module named 'tqdm'
Es scheint, dass es kein Modul namens tqdm gibt, also installieren Sie es.
$ pip install tqdm
Führen Sie download.py
erneut aus, um das Herunterladen und Entpacken der Daten zu starten.
Übrigens gibt "celebA" im Argument des obigen Befehlsbeispiels die Daten für die Demo zur Generierung von Promi-Gesichtern an. Wenn Sie also die Demo ausprobieren möchten, die handschriftliche Zahlen generiert
$ python download.py mnist
Wird besorgt.
Führen Sie einfach main.py mit aktivem TensorFlow aus.
(tensorflow)$ python main.py --dataset celebA --input_height=108 --train --crop
Im Fall von MNIST
(tensorflow)$ python main.py --dataset mnist --input_height=28 --output_height=28 --train
Es dauert lange, aber es gibt mitten im Prozess ** generierte Beispielbilder ** in den Ordner "samples" aus, sodass Sie sehen können, wie das Modell trainiert wird, ohne auf den Abschluss des Trainings warten zu müssen. ..
(CELEB, Epoche 0, 100 Blatt Lernen)
(CELEB, Epoche 0, 500 Blatt Lernen)
(CELEB, Epoche 0, 1100 Blatt lernen)
(CELEB, Epoch1)
(MNIST, Epoch0)
(MNIST, Epoch1)
・
・
・
(MNIST, Epoch6)
(MNIST, Epoch8)
Sie können sehen, dass sich die Genauigkeit der Bilderzeugung im Verlauf des Lernens verbessert.
Nach Abschluss des Trainings können Sie das Modell verwenden, um die Bilderzeugung wie folgt durchzuführen:
$ python main.py --dataset mnist --input_height=28 --output_height=28
$ python main.py --dataset celebA --input_height=108 --crop
In diesem Fall sollten Sie es mit Ihren eigenen Daten versuchen. Fortsetzung zu einem anderen Artikel (geplant)
→ Ich habe versucht und geschrieben: Durch Deep Learning automatisch ein "Punktbild" der Spieleanwendung generieren
Recommended Posts