Générer des séquences
Pour pouvoir entraîner des réseaux neuronaux sur des données séquentielles, vous devez d'abord les prétraiter. Vous découperez les données en paires entrée-cible, où les entrées sont un certain nombre de points de données consécutifs et la cible est le point de données suivant.
Votre tâche consiste à définir une fonction appelée create_sequences()
. Il recevra comme entrées des données stockées dans un DataFrame, df
et seq_length
, la longueur des entrées. En sortie, il doit renvoyer deux tableaux NumPy, l'un avec les séquences d'entrée et l'autre avec les cibles correspondantes.
Pour rappel, voici à quoi ressemble le DataFrame df
:
timestamp consumption
0 2011-01-01 00:15:00 -0.704319
... ... ...
140255 2015-01-01 00:00:00 -0.095751
Cet exercice fait partie du cours
Apprentissage profond intermédiaire avec PyTorch
Instructions
- Itère sur la plage du nombre de points de données moins la longueur d'une séquence d'entrée.
- Définissez les entrées
x
comme la tranche dedf
allant de lai
e ligne à lai + seq_length
e ligne et la colonne à l'indice1
. - Définissez la cible
y
comme la tranche dedf
à l'indice de lignei + seq_length
et la colonne à l'indice1
.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)