IniziaInizia gratis

Generare sequenze

Per poter addestrare reti neurali su dati sequenziali, prima devi pre-processarli. Dividerai i dati in coppie input-target, dove gli input sono un certo numero di punti dati consecutivi e il target è il punto dati successivo.

Il tuo compito è definire una funzione per farlo chiamata create_sequences(). Come input riceverà i dati memorizzati in un DataFrame, df, e seq_length, la lunghezza degli input. Come output, dovrebbe restituire due array NumPy: uno con le sequenze di input e l'altro con i relativi target.

Come promemoria, ecco com'è fatto il DataFrame df:

                 timestamp  consumption
0      2011-01-01 00:15:00    -0.704319
...                    ...          ...
140255 2015-01-01 00:00:00    -0.095751

Questo esercizio fa parte del corso

Deep Learning intermedio con PyTorch

Visualizza il corso

Istruzioni dell'esercizio

  • Itera sull'intervallo del numero di punti dati meno la lunghezza di una sequenza di input.
  • Definisci gli input x come lo slice di df dalla riga i alla riga i + seq_length e la colonna con indice 1.
  • Definisci il target y come lo slice di df alla riga con indice i + seq_length e la colonna con indice 1.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

import numpy as np

def create_sequences(df, seq_length):
    xs, ys = [], []
    # Iterate over data indices
    for i in range(____):
      	# Define inputs
        x = df.iloc[____, ____]
        # Define target
        y = df.iloc[____, ____]
        xs.append(x)
        ys.append(y)
    return np.array(xs), np.array(ys)
Modifica ed esegui il codice