Это зависит от определения вашего генератора.На самом деле, если у вас есть генератор, который выдает партии бесконечно, то вы должны убедиться, что он определен так, что после прохождения всех выборок (т. Е. Одной эпохи) он возвращается к исходной точке (т. Е. Мы не генерируем выборку болееодин раз в эпоху).Например, примерный набросок такого генератора будет выглядеть так:
def my_gen(x_train, y_train, batch_size):
n_samples = x_train.shape[0]
n_steps = np.ceil(n_samples // batch_size)
while True:
# one epoch: goes over all the samples
for i in range(n_steps):
# the last batch might have less than batch_size samples
if (i+1) * batch_size > n_samples:
x = x_train[i * batch_size:]
y = y_train[i * batch_size:]
else:
x = x_train[i * batch_size : (i+1) * batch_size]
y = y_train[i * batch_size : (i+1) * batch_size]
yield x, y