Aan de slagGa gratis aan de slag

Reeksen genereren

Om neurale netwerken op sequentiële data te trainen, moet je de data eerst voorbewerken. Je deelt de data op in input-targetparen, waarbij de inputs een aantal opeenvolgende datapunten zijn en de target het eerstvolgende datapunt is.

Jouw taak is om een functie te definiëren die dit doet, create_sequences(). Als input krijgt die de data in een DataFrame, df, en seq_length, de lengte van de inputs. Als output moet de functie twee NumPy-arrays retourneren: één met inputreeksen en één met de bijbehorende targets.

Ter herinnering, zo ziet het DataFrame df eruit:

                 timestamp  consumption
0      2011-01-01 00:15:00    -0.704319
...                    ...          ...
140255 2015-01-01 00:00:00    -0.095751

Deze oefening maakt deel uit van de cursus

Gevorderde Deep Learning met PyTorch

Cursus bekijken

Oefeninstructies

  • Itereer over het bereik van het aantal datapunten min de lengte van een inputreeks.
  • Definieer de inputs x als de slice van df van de i-de rij tot en met de rij i + seq_length en de kolom met index 1.
  • Definieer de target y als de slice van df op rij-index i + seq_length en de kolom met index 1.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren