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
Oefeninstructies
- Itereer over het bereik van het aantal datapunten min de lengte van een inputreeks.
- Definieer de inputs
xals de slice vandfvan dei-de rij tot en met de riji + seq_lengthen de kolom met index1. - Definieer de target
yals de slice vandfop rij-indexi + seq_lengthen de kolom met index1.
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)