CommencezCommencez gratuitement

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

Voir le cours

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 x comme la tranche de df allant de la ie ligne à la ligne i + seq_length, et la colonne à l'indice 1.
  • Définissez la cible y comme la tranche de df à l'indice de ligne i + seq_length et la colonne à l'indice 1.

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)
Modifier et exécuter le code