Generowanie sekwencji
Aby móc trenować sieci neuronowe na danych sekwencyjnych, trzeba je najpierw wstępnie przetworzyć. Dane zostaną podzielone na pary: wejście–cel, gdzie wejściem jest określona liczba kolejnych punktów danych, a celem – następny punkt danych.
Twoim zadaniem jest zdefiniowanie funkcji create_sequences(), która to umożliwi. Na wejściu będzie ona otrzymywać dane przechowywane w DataFrame df oraz seq_length – długość sekwencji wejściowej. Na wyjściu powinna zwracać dwie tablice NumPy: jedną z sekwencjami wejściowymi i drugą z odpowiadającymi im wartościami docelowymi.
Dla przypomnienia, oto jak wygląda DataFrame df:
timestamp consumption
0 2011-01-01 00:15:00 -0.704319
... ... ...
140255 2015-01-01 00:00:00 -0.095751
To ćwiczenie jest częścią kursu
Głębokie uczenie z PyTorch – poziom średnio zaawansowany
Instrukcje do ćwiczenia
- Wykonaj iterację po zakresie liczby punktów danych pomniejszonej o długość sekwencji wejściowej.
- Zdefiniuj wejście
xjako wycinekdfod wiersza o indeksieido wiersza o indeksiei + seq_lengthoraz kolumny o indeksie1. - Zdefiniuj cel
yjako wycinekdfw wierszu o indeksiei + seq_lengthoraz kolumnie o indeksie1.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)