Generera sekvenser
För att kunna träna neurala nätverk på sekventiell data behöver du förbehandla den först. Du delar upp datan i par av indata och mål, där indatan består av ett antal konsekutiva datapunkter och målet är nästa datapunkt.
Din uppgift är att definiera en funktion för detta som kallas create_sequences(). Som indata tar den emot data lagrad i en DataFrame, df, samt seq_length – längden på indatasekvenserna. Som utdata ska den returnera två NumPy-arrayer: en med indatasekvenser och en med motsvarande mål.
Som en påminnelse ser DataFrame:n df ut så här:
timestamp consumption
0 2011-01-01 00:15:00 -0.704319
... ... ...
140255 2015-01-01 00:00:00 -0.095751
Den här övningen är en del av kursen
Fördjupad djupinlärning med PyTorch
Övningsinstruktioner
- Iterera över intervallet från antalet datapunkter minus längden på en indatasekvens.
- Definiera indatan
xsom ett utsnitt avdffrån raditill radi + seq_lengthoch kolumnen vid index1. - Definiera målet
ysom ett utsnitt avdfvid radindexi + seq_lengthoch kolumnen vid index1.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)