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 allez découper 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 est de définir une fonction pour ce faire, appelée create_sequences(). En entrée, elle recevra des données stockées dans un DataFrame, df, et seq_length, la longueur des entrées. En sortie, elle doit retourner 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
Cette activité fait partie du cours
Apprentissage profond intermédiaire avec PyTorch
Instructions de l’exercice
- Itérez sur l'intervalle correspondant au 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 à la lignei + seq_length, 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 ce code d’exemple.
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)