1. Theoretische Unterschiede
Batch_Sizes stellt die Anzahl der Stichproben dar, um das Gradientenfehler-Delta einmal zu berechnen und dann nach der Berechnung eine Parameteriteration durchzuführen.
Die Epoche schließt das Mini-Batch-Training aller Trainingseingaben ab, was als Abschluss einer Trainingsiteration bezeichnet wird. Dann beginnt eine neue Iteration.
Wie folgt bezieht sich 273 auf die Anzahl der in einer Iteration verwendeten Batch_Sizes. Hier beträgt die Gesamtzahl der Stichproben 17469 und Batch_Sizes ist auf 64 gesetzt, also 17469/64 = 272,9, also 273. Es ist ersichtlich, dass es sich im Folgenden um 50 Epochen handelt und jedes Mal eine Batch-Trainingsrunde für alle Trainingseingaben durchgeführt wird.
2. Erkenntnis
Datenverarbeitung von Batch_Sizes in Keras: Aufgrund der direkten Eingabe vollständiger Daten durch model.fit kann es Fälle geben, in denen der Speicher dies nicht unterstützt. Daher ist es notwendig, die Batch-Größe der Daten im Voraus zu verarbeiten und insbesondere die Sequenzfunktion von Tensorflow anzuwenden.
Sie können auf den Link verweisen: die Verwendung von tensorflow.keras.utils.Sequence_Flying de fish ~ blog-CSDN blog
Referenzcode:
from tensorflow.keras.utils import Sequence
import numpy as np
class DataGenerator(Sequence):
def __init__(self, x_set, y_set, batch_size):
self.x, self.y = x_set, y_set
self.batch_size = batch_size
def __len__(self):
return int(np.ceil(len(self.x) / float(self.batch_size)))
def __getitem__(self, idx):
batch_x = self.x[idx * self.batch_size:(idx + 1) * self.batch_size]
batch_y = self.y[idx * self.batch_size:(idx + 1) * self.batch_size]
return tf.convert_to_tensor(batch_x), tf.convert_to_tensor(batch_y)
train_gen = DataGenerator(trainx_lt_tfidf, label_one_trainy_lt, 64)