Sequenzen generieren
Um neuronale Netze mit sequentiellen Daten trainieren zu können, musst du diese zuerst vorverarbeiten. Du wirst die Daten in Input-Ziel-Paare aufteilen, wobei die Inputs aus einer bestimmten Anzahl aufeinanderfolgender Datenpunkte bestehen und das Ziel der nächste Datenpunkt ist.
Deine Aufgabe ist es, eine Funktion namens create_sequences()
zu definieren, die dies durchführt. Als Inputs erhält sie in einem DataFrame gespeicherte Daten, df
und seq_length
, die Länge der Inputs. Als Ausgabe muss sie zwei NumPy-Arrays zurückgeben, eines mit Input-Sequenzen und das andere mit den entsprechenden Zielwerten.
Zur Erinnerung, so sieht das DataFrame df
aus:
timestamp consumption
0 2011-01-01 00:15:00 -0.704319
... ... ...
140255 2015-01-01 00:00:00 -0.095751
Diese Übung ist Teil des Kurses
Deep Learning mit PyTorch für Fortgeschrittene
Anleitung zur Übung
- Iteriere über den Bereich der Anzahl der Datenpunkte minus der Länge einer Input-Sequenz.
- Definiere die Inputs
x
als den Ausschnitt vondf
von deri
-ten Zeile bis zuri + seq_length
-ten Zeile und der Spalte mit Index1
. - Definiere das Ziel
y
als den Ausschnitt vondf
bei Zeilenindexi + seq_length
und der Spalte mit Index1
.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
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)