Beim Training eines neuronalen Netzwerkmodells mit Keras wurde festgestellt, dass Das Modell verwendet für das Training nur eine kleine Teilmenge des bereitgestellten Datensatzes und nicht den gesamten Datensatz. Konkret verwendet das Modell nur 1875 Einträge für das Training, während der gesamte Datensatz aus 60.000 Einträgen besteht.
Das Problem entsteht aufgrund eines Missverständnisses der Ausgabe während der Modellanpassung. Die während der Anpassung angezeigte Zahl 1875 ist nicht die Anzahl der Trainingsbeispiele; es stellt die Anzahl der Chargen dar. Standardmäßig verwendet Keras für das Training eine Stapelgröße von 32. Daher beträgt die Gesamtzahl der Batches für den gegebenen Datensatz:
60000 / 32 = 1875
Anstatt auf dem gesamten Datensatz zu trainieren, teilt das Modell die Daten in Batches der Größe 32 auf und iteriert durch diese Batches während jeder Epoche.
Um den gesamten Datensatz während des Trainings zu verwenden, muss eine Stapelgröße angegeben werden, die alle Trainingsbeispiele berücksichtigt. Dies kann durch Festlegen des Arguments „batch_size“ in der Funktion „model.fit“ erreicht werden. Um beispielsweise den gesamten Datensatz zu verwenden, kann man „batch_size=60000“ angeben:
<code class="python">model.fit(train_images, train_labels, epochs=10, batch_size=60000)</code>
Durch die Verwendung dieser Stapelgröße verarbeitet das Modell alle 60.000 Trainingsbeispiele in einem Stapel und nutzt so effektiv den gesamten Datensatz für Ausbildung.
Das obige ist der detaillierte Inhalt vonWarum verwendet mein Keras-Modell während des Trainings nur einen Teil meines Datensatzes?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!