python train.py --problem=mnist --save_path=./mnist
Befehlszeilenflags:
save_path
: Falls vorhanden, wird der Optimierer jedes Mal im angegebenen Pfad gespeichert, wenn die Bewertungsleistung verbessert wird.num_epochs
: Anzahl der Trainingsepochen.log_period
: Epochen, bevor die mittlere Leistung und Zeit gemeldet wird.evaluation_period
: Epochen, bevor der Optimierer ausgewertet wird.evaluation_epochs
: Anzahl der Bewertungsepochen.problem
: Problem, an dem trainiert werden soll. Siehe Abschnitt „Probleme“ weiter unten.num_steps
: Anzahl der Optimierungsschritte.unroll_length
: Anzahl der Abrollschritte für den Optimierer.learning_rate
: Lernrate.second_derivatives
: Bei true
versucht der Optimierer, zweite Ableitungen über die durch das Problem angegebene Verlustfunktion zu berechnen. python evaluate.py --problem=mnist --optimizer=L2L --path=./mnist
Befehlszeilenflags:
optimizer
: Adam
oder L2L
.path
: Pfad zum gespeicherten Optimierer, nur relevant, wenn der L2L
Optimierer verwendet wird.learning_rate
: Lernrate, nur relevant, wenn Adam
-Optimierer verwendet wird.num_epochs
: Anzahl der Auswertungsepochen.seed
: Startwert für die Zufallszahlengenerierung.problem
: Problem, das ausgewertet werden soll. Siehe Abschnitt „Probleme“ weiter unten.num_steps
: Anzahl der Optimierungsschritte. Die Trainings- und Evaluierungsskripte unterstützen die folgenden Probleme (weitere Informationen finden Sie in util.py
):
simple
: Quadratische Funktion mit einer Variablen.simple-multi
: Quadratische Funktion mit zwei Variablen, wobei eine der Variablen mit einem erlernten Optimierer und die andere mit Adam optimiert wird.quadratic
: Stapelweise quadratische Funktion mit zehn Variablen.mnist
: Mnist-Klassifizierung mithilfe eines zweischichtigen, vollständig verbundenen Netzwerks.cifar
: Cifar10-Klassifizierung mithilfe eines Faltungs-Neuronalen Netzwerks.cifar-multi
: Cifar10-Klassifizierung mithilfe eines Faltungs-Neuronalen Netzwerks, bei dem zwei unabhängige gelernte Optimierer verwendet werden. Eine zur Optimierung von Parametern aus Faltungsschichten und die andere für Parameter aus vollständig verbundenen Schichten. Neue Probleme lassen sich sehr einfach umsetzen. Sie können in train.py
sehen, dass der Methode meta_minimize
aus der Klasse MetaOptimizer
eine Funktion zugewiesen wird, die die TensorFlow-Operation zurückgibt, die die Verlustfunktion generiert, die wir minimieren möchten (siehe problems.py
für ein Beispiel).
Es ist wichtig, dass alle Vorgänge mit Python-Nebeneffekten (z. B. Warteschlangenerstellung) außerhalb der an meta_minimize
übergebenen Funktion ausgeführt werden müssen. Die cifar10
-Funktion in problems.py
ist ein gutes Beispiel für eine Verlustfunktion, die TensorFlow-Warteschlangen verwendet.
Haftungsausschluss: Dies ist kein offizielles Google-Produkt.