Générer des séquences
Pour entraîner des réseaux de neurones 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ù l’entrée correspond à 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 appelée create_sequences(). En entrée, elle recevra les données stockées dans un DataFrame, df, et seq_length, la longueur des séquences d’entrée. En sortie, elle 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érez sur l’intervalle allant 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 dedfde laie ligne à la lignei + seq_length, et la colonne d’indice1. - Définissez la cible
ycomme la tranche dedfà l’indice de lignei + seq_lengthet la colonne d’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)