Listing 6.33 Generator yielding timeseries samples and their targets. How to terminate the generator for creating the training samples

Viewed 67

When I read the book of Deep Learning with Python, I cannot find the terminal code and the while condition is always true. I want to the know how to obtain the training samples. Thank you very much for helping me.

# Listing 6.33 Generator yielding timeseries samples and their targets
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
    k=0
    while 1:
        if shuffle:
            k+=1
            print('k=', k)
            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


# Listing 6.34  Preparing the training, validation, and test generators
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)
0 Answers
Related