Generování sekvencí
Aby bylo možné trénovat neuronové sítě na sekvenčních datech, je nejprve potřeba tato data předpřipravit. Data rozdělíš na dvojice vstup–cíl, kde vstupy tvoří určitý počet po sobě jdoucích datových bodů a cílem je vždy následující datový bod.
Tvým úkolem je definovat funkci create_sequences(), která to zajistí. Na vstupu dostane data uložená v DataFrame df a hodnotu seq_length určující délku vstupních sekvencí. Na výstupu by měla vrátit dvě NumPy pole – jedno se vstupními sekvencemi a druhé s odpovídajícími cílovými hodnotami.
Pro připomenutí, takto vypadá DataFrame df:
timestamp consumption
0 2011-01-01 00:15:00 -0.704319
... ... ...
140255 2015-01-01 00:00:00 -0.095751
Toto cvičení je součástí kurzu
Intermediate Deep Learning with PyTorch
Pokyny k cvičení
- Iteruj přes rozsah počtu datových bodů mínus délka vstupní sekvence.
- Definuj vstup
xjako výřezdfodi-tého řádku po řádeki + seq_lengtha sloupec na indexu1. - Definuj cíl
yjako výřezdfna indexu řádkui + seq_lengtha sloupci na indexu1.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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)