Crea un conjunto de datos de ventanas deslizantes sobre una serie temporal proporcionada como array.

tf.keras.preprocessing.timeseries_dataset_from_array(
    data, targets, sequence_length, sequence_stride=1, sampling_rate=1,
    batch_size=128, shuffle=False, seed=None, start_index=None, end_index=None)

Esta función toma una secuencia de puntos de datos recopilados a intervalos iguales, junto con parámetros de series de tiempo como la longitud de las secuencias / ventanas, el espacio entre dos secuencias / ventanas, etc., para producir lotes de entradas y objetivos de series temporales.

Argumentos
data Numpy array o tensor ansioso que contiene puntos de datos consecutivos (pasos de tiempo). Se espera que el eje 0 sea la dimensión de tiempo.
targets Objetivos correspondientes a intervalos de tiempo en data. Debe tener la misma longitud que data. targets[i] debe ser el objetivo correspondiente a la ventana que comienza en el índice i (vea el ejemplo 2 a continuación). Pase Ninguno si no tiene datos de destino (en este caso, el conjunto de datos solo proporcionará los datos de entrada).
sequence_length Longitud de las secuencias de salida (en número de pasos de tiempo).
sequence_stride Periodo entre sucesivas secuencias de salida. Para zancada s, las muestras de salida comenzarían en el índice data[i], data[i + s], data[i + 2 * s]etc.
sampling_rate Período entre pasos de tiempo individuales sucesivos dentro de secuencias. Para tasa r, pasos de tiempo data[i], data[i + r], ... data[i + sequence_length] se utilizan para crear una secuencia de muestra.
batch_size Número de muestras de series temporales en cada lote (excepto quizás el último).
shuffle Ya sea para mezclar muestras de salida o dibujarlas en orden cronológico.
seed Int opcional; semilla aleatoria para barajar.
start_index Int opcional; puntos de datos anteriores (exclusivos) que start_index no se utilizará en las secuencias de salida. Esto es útil para reservar parte de los datos para pruebas o validaciones.
end_index Int opcional; puntos de datos posteriores (exclusivo) que end_index no se utilizará en las secuencias de salida. Esto es útil para reservar parte de los datos para pruebas o validaciones.
Devoluciones
Una instancia de tf.data.Dataset. Si targets se pasó, el conjunto de datos produce una tupla (batch_of_sequences, batch_of_targets). De lo contrario, el conjunto de datos solo arroja batch_of_sequences.

Ejemplo 1:

Considere los índices [0, 1, ... 99]. Con sequence_length=10, sampling_rate=2, sequence_stride=3, shuffle=False, el conjunto de datos producirá lotes de secuencias compuestas por los siguientes índices:

First sequence:[024681012141618]
Second sequence:[3579111315171921]
Third sequence:[681012141618202224]...
Last sequence:[78808284868890929496]

En este caso, los últimos 3 puntos de datos se descartan ya que no se puede generar una secuencia completa para incluirlos (la siguiente secuencia habría comenzado en el índice 81 y, por lo tanto, su último paso habría superado el 99).

Ejemplo 2: regresión temporal. Considere una array data de valores escalares, de forma (steps,). Para generar un conjunto de datos que utilice los últimos 10 pasos de tiempo para predecir el siguiente paso de tiempo, usaría:

input_data = data[:-10]
targets = data[10:]
dataset = tf.keras.preprocessing.timeseries_dataset_from_array(
    input_data, targets, sequence_length=10)for batch in dataset:
  inputs, targets = batch
  assert np.array_equal(inputs[0], data[:10])# First sequence: steps [0-9]assert np.array_equal(targets[0], data[10])# Corresponding target: step 10break