Keras-Trainingsdatendiskrepanz
Als Sie dem offiziellen TensorFlow-Leitfaden zum Aufbau eines neuronalen Netzwerks mit Keras folgten, ist Ihnen aufgefallen, dass das Modell nur a verwendet Teil des verfügbaren Datensatzes während des Trainings, obwohl 60.000 Einträge vorhanden sind.
Grundlegendes zur Stapelgröße
Die während der Modellanpassung angezeigte Zahl 1875 ist kein Hinweis auf Trainingsbeispiele, sondern vielmehr die Anzahl der Chargen. Die model.fit-Methode verfügt über ein optionales Argument, „batch_size“, das die Anzahl der Datenpunkte bestimmt, die während des Trainings gleichzeitig verarbeitet werden.
Wenn Sie keine „batch_size“ angeben, ist der Standardwert 32. In diesem Fall Bei einem Gesamtdatensatz von 60.000 Bildern beträgt die Anzahl der Stapel:
60000 / 32 = 1875
Obwohl Sie über 60.000 Datenpunkte verfügen, trainiert das Modell tatsächlich mit 1875 Stapeln, wobei jeder Stapel 32 Datenpunkte enthält. Dies ist eine gängige Praxis, um den Speicherbedarf zu reduzieren und die Trainingsgeschwindigkeit zu verbessern.
Anpassen der Stapelgröße
Um den gesamten Datensatz während des Trainings ohne Stapelverarbeitung zu verwenden, können Sie a angeben batch_size von 60000 in der model.fit-Methode. Dies kann jedoch möglicherweise das Training verlangsamen und mehr Speicher erfordern.
Alternativ können Sie die Batchgröße anpassen, um einen Kompromiss zwischen Trainingseffizienz und Speichernutzung zu finden. Sie könnten ihn beispielsweise auf 1024 oder 2048 einstellen, was die Anzahl der Stapel immer noch deutlich reduzieren würde, ohne zu große Einbußen bei der Leistung hinnehmen zu müssen.
Das obige ist der detaillierte Inhalt vonWarum trainiert mein Keras-Modell nur einen Teil meines Datensatzes?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!