<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/keras-team/keras/tree/v2.15.0/keras/preprocessing/sequence.py#L55-L245) |

Utility class for generating batches of temporal data.

Inherits From: [`Sequence`](https://www.tensorflow.org/versions/r2.15/api_docs/python/tf/keras/utils/Sequence)

    tf.keras.preprocessing.sequence.TimeseriesGenerator(
        data,
        targets,
        length,
        sampling_rate=1,
        stride=1,
        start_index=0,
        end_index=None,
        shuffle=False,
        reverse=False,
        batch_size=128
    )

> [!WARNING]
> **Deprecated:** [`tf.keras.preprocessing.sequence.TimeseriesGenerator`](https://www.tensorflow.org/versions/r2.15/api_docs/python/tf/keras/preprocessing/sequence/TimeseriesGenerator) does not operate on tensors and is not recommended for new code. Prefer using a [`tf.data.Dataset`](https://www.tensorflow.org/versions/r2.15/api_docs/python/tf/data/Dataset) which provides a more efficient and flexible mechanism for batching, shuffling, and windowing input. See the [tf.data guide](https://www.tensorflow.org/guide/data) for more details.

This class takes in a sequence of data-points gathered at
equal intervals, along with time series parameters such as
stride, length of history, etc., to produce batches for
training/validation.

<br />

<br />

<br />

| ## Arguments ||
|---|---|
| `data` | Indexable generator (such as list or Numpy array) containing consecutive data points (timesteps). The data should be at 2D, and axis 0 is expected to be the time dimension. |
| `targets` | Targets corresponding to timesteps in `data`. It should have same length as `data`. |
| `length` | Length of the output sequences (in number of timesteps). |
| `sampling_rate` | Period between successive individual timesteps within sequences. For rate `r`, timesteps `data[i]`, `data[i-r]`, ... `data[i - length]` are used for create a sample sequence. |
| `stride` | Period between successive output sequences. For stride `s`, consecutive output samples would be centered around `data[i]`, `data[i+s]`, `data[i+2*s]`, etc. |
| `start_index` | Data points earlier than `start_index` will not be used in the output sequences. This is useful to reserve part of the data for test or validation. |
| `end_index` | Data points later than `end_index` will not be used in the output sequences. This is useful to reserve part of the data for test or validation. |
| `shuffle` | Whether to shuffle output samples, or instead draw them in chronological order. |
| `reverse` | Boolean: if `true`, timesteps in each output sample will be in reverse chronological order. |
| `batch_size` | Number of timeseries samples in each batch (except maybe the last one). |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| A [Sequence](https://www.tensorflow.org/api_docs/python/tf/keras/utils/Sequence) instance. ||

<br />

<br />

<br />

<br />

| ## Examples ||
|---|---|
| <br /> from keras.src.preprocessing.sequence import TimeseriesGenerator import numpy as np data = np.array([[i] for i in range(50)]) targets = np.array([[i] for i in range(50)]) data_gen = TimeseriesGenerator(data, targets, length=10, sampling_rate=2, batch_size=2) assert len(data_gen) == 20 batch_0 = data_gen[0] x, y = batch_0 assert np.array_equal(x, np.array([[[0], [2], [4], [6], [8]], [[1], [3], [5], [7], [9]]])) assert np.array_equal(y, np.array([[10], [11]])) <br /> ||

<br />

## Methods

### `get_config`

[View source](https://github.com/keras-team/keras/tree/v2.15.0/keras/preprocessing/sequence.py#L195-L228)

    get_config()

Returns the TimeseriesGenerator configuration as Python dictionary.

<br />

<br />

<br />

| Returns ||
|---|---|
| A Python dictionary with the TimeseriesGenerator configuration. ||

<br />

### `on_epoch_end`

[View source](https://github.com/keras-team/keras/tree/v2.15.0/keras/utils/data_utils.py#L561-L563)

    on_epoch_end()

Method called at the end of every epoch.

### `to_json`

[View source](https://github.com/keras-team/keras/tree/v2.15.0/keras/preprocessing/sequence.py#L230-L245)

    to_json(
        **kwargs
    )

Returns a JSON string containing the generator's configuration.

<br />

<br />

<br />

| Args ||
|---|---|
| `**kwargs` | Additional keyword arguments to be passed to `json.dumps()`. |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| A JSON string containing the tokenizer configuration. ||

<br />

### `__getitem__`

[View source](https://github.com/keras-team/keras/tree/v2.15.0/keras/preprocessing/sequence.py#L170-L193)

    __getitem__(
        index
    )

Gets batch at position `index`.

<br />

<br />

<br />

| Args ||
|---|---|
| `index` | position of the batch in the Sequence. |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| A batch ||

<br />

### `__iter__`

[View source](https://github.com/keras-team/keras/tree/v2.15.0/keras/utils/data_utils.py#L565-L568)

    __iter__()

Create a generator that iterate over the Sequence.

### `__len__`

[View source](https://github.com/keras-team/keras/tree/v2.15.0/keras/preprocessing/sequence.py#L165-L168)

    __len__()

Number of batch in the Sequence.

<br />

<br />

<br />

| Returns ||
|---|---|
| The number of batches in the Sequence. ||

<br />