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
Istruzioni dell'esercizio
- Itera sull'intervallo del numero di punti dati meno la lunghezza di una sequenza di input.
- Definisci gli input
xcome lo slice didfdalla rigaialla rigai + seq_lengthe la colonna con indice1. - Definisci il target
ycome lo slice didfalla riga con indicei + seq_lengthe la colonna con indice1.
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)