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
Deep learning 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
xcomme la tranche dedfallant de laie ligne à lai + seq_lengthe ligne et la colonne à l'indice1. - Définissez la cible
ycomme la tranche dedfà l'indice de lignei + seq_lengthet 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)