Keras-Training mit begrenztem Datensatz
Beim Versuch, ein neuronales Netzwerk mit Keras zu trainieren, ist Ihnen aufgefallen, dass es nur einen Teil der verfügbaren Daten nutzt Datensatz, obwohl Zugriff auf 60.000 Proben vorhanden ist. Obwohl Sie dem offiziellen TensorFlow-Leitfaden gefolgt sind, weist der Trainingsprozess eine Diskrepanz auf. Ziel dieses Artikels ist es, zu erklären, warum Keras sich auf diese Weise verhält, und eine Lösung anzubieten.
Der Grund für die teilweise Verwendung von Datensätzen
Die Zahl „1875“, die während der Modellanpassung gefunden wird, ist der Fall stellt nicht die Anzahl der Trainingsproben dar; Vielmehr gibt es die Anzahl der Chargen an. Standardmäßig verwendet Keras während des Trainings eine Stapelgröße von 32. Für einen Datensatz mit 60.000 Proben entspricht dies:
60,000 / 32 = 1875
Daher unterteilt Keras Ihren Datensatz in 1875 Chargen mit jeweils 32 Proben. Infolgedessen iteriert jede Epoche über diese 1875 Batches und nicht über den gesamten Datensatz.
Lösung
Um den gesamten Datensatz zu nutzen, können Sie die Batchgröße explizit auf festlegen die Gesamtzahl der Stichproben:
<code class="python">model.fit(train_images, train_labels, epochs=10, batch_size=60000)</code>
Auf diese Weise trainiert Keras das Modell anhand des gesamten Datensatzes, was zu einer verbesserten Leistung führen kann.
Das obige ist der detaillierte Inhalt vonWarum trainiert Keras nur einen Teil meines Datensatzes, obwohl ich 60.000 Proben habe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!