#python #tensorflow #keras #generator #batchsize
Вопрос:
Я новичок в Tensorflow и keras. Я следую учебнику из книги «Глубокое обучение с помощью python» (Chollet). Также доступно здесь: https://www.kaggle.com/pankrzysiu/6-3-1-a-temperature-forecasting-problem
В постановке задачи мы хотим предсказать температуру на 24 часа в будущем. Для настройки данных он определяет следующий генератор:
def generator(data, lookback, delay, min_index, max_index,
shuffle=False, batch_size=128, step=6):
if max_index is None:
max_index = len(data) - delay - 1
i = min_index lookback
while 1:
if shuffle:
rows = np.random.randint(
min_index lookback, max_index, size=batch_size)
else:
if i batch_size >= max_index:
i = min_index lookback
rows = np.arange(i, min(i batch_size, max_index))
i = len(rows)
samples = np.zeros((len(rows),
lookback // step,
data.shape[-1]))
targets = np.zeros((len(rows),))
for j, row in enumerate(rows):
indices = range(rows[j] - lookback, rows[j], step)
samples[j] = data[indices]
targets[j] = data[rows[j] delay][1]
yield samples, targets
И создает три объекта:
lookback = 1440
step = 6
delay = 144
batch_size = 128
train_gen = generator(float_data,
lookback=lookback,
delay=delay,
min_index=0,
max_index=200000,
shuffle=True,
step=step,
batch_size=batch_size)
val_gen = generator(float_data,
lookback=lookback,
delay=delay,
min_index=200001,
max_index=300000,
step=step,
batch_size=batch_size)
test_gen = generator(float_data,
lookback=lookback,
delay=delay,
min_index=300001,
max_index=None,
step=step,
batch_size=batch_size)
Насколько я понимаю этот код, переменная «строки» имеет длину, равную размеру пакета.
Когда генератор создает целевые объекты, кажется, что он создает по одному целевому объекту на номер партии. Я не понимаю, как этот код возвращает 24 часа целевых значений и почему test_gen также вызывается с помощью batch_size=batch_size.
Пожалуйста, укажите, если вопрос неясен.