Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Wykonaj iterację po zakresie liczby punktów danych pomniejszonej o długość sekwencji wejściowej.
  • Zdefiniuj wejście x jako wycinek df od wiersza o indeksie i do wiersza o indeksie i + seq_length oraz kolumny o indeksie 1.
  • Zdefiniuj cel y jako wycinek df w wierszu o indeksie i + seq_length oraz kolumnie o indeksie 1.

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)
Edytuj i uruchom kod