Dies ist wahrscheinlich eine sehr grundlegende Frage. Ich bin neu im Deep Learning und von dem, was ich bis jetzt gesammelt habe, erstellt man im Allgemeinen Datenpartien und sobald alle Trainingsdaten verwendet wurden (oder "genug" davon), wird der Prozess einige Male wiederholt (jede Iteration) heißt eine Epoche). Allerdings sehen, als ich im Tutorial von CIFAR10:Tensorflow CIFAR10 Tutorial: Anzahl der Epochen im Trainingsprozess ermitteln
Es gibt keine solche Sache wie Epochen ist. Sie sind hier nur erwähnt: cifar10.py
als NUM_EXAMPLES_PER_EPOCH_FOR_TRAIN
, NUM_EXAMPLES_PER_EPOCH_FOR_EVAL
und NUM_EPOCHS_PER_DECAY
.
Verwenden sie das um die Epochen implizit zu definieren?
num_batches_per_epoch = NUM_EXAMPLES_PER_EPOCH_FOR_TRAIN /FLAGS.batch_size
frage ich auch, weil ich ein wenig verwirrt darüber bin, wie ich hier die num_epochs
Argument setzen soll (in meinem eigenen Modell):
tf.train.string_input_producer(...,num_epochs=num_epochs,...)`
sollte ich es NONE
gesetzt gerade oder ich tun müssen Sie zuerst die Anzahl der Epochen berechnen?
Das Flag 'max_steps' ist auf 1000000 Chargen eingestellt. Und jede Charge hat 128 Beispiele. Ist es richtig zu sagen, dass sie (1000000 * 128)/50000 = 2560 Epochen haben? Also im Grunde kann ich num_epochs auf None setzen und einfach alles bei einer bestimmten Anzahl von Schritten stoppen – user3142067
Ja, sie haben 2560 Epochen. Wenn Sie 'num_epochs' in' tf.train.string_input_producer (..., num_epochs = num_epochs, ...) 'auf None setzen, hört der Leser nicht mit dem Lesen von Daten auf, bis der Schritt 'max_steps' erreicht, wenn das gesamte Programm beendet wird ; Wenn Sie die 'num_epochs' angeben, liest der Leser nur' num_epochs'-Zeiten seiner Eingabe und fordert dann einen 'OutOfRange'-Fehler auf. – Seven