產生序列
在訓練能處理序列資料的神經網路之前,你需要先進行前處理。你會把資料切成輸入-目標的配對,其中輸入是若干連續的資料點,而目標是下一個資料點。
你的任務是定義一個名為 create_sequences() 的函式來完成這件事。它的輸入包含存放在 DataFrame 的資料 df,以及輸入序列的長度 seq_length。輸出則應回傳兩個 NumPy 陣列:一個是輸入序列,另一個是對應的目標。
以下提醒一下 DataFrame df 的樣子:
timestamp consumption
0 2011-01-01 00:15:00 -0.704319
... ... ...
140255 2015-01-01 00:00:00 -0.095751
本練習屬於課程
Intermediate Deep Learning with PyTorch
練習說明
- 以「資料點數量減去輸入序列長度」為範圍進行迭代。
- 將輸入
x定義為df從第i列到第i + seq_length列,且欄索引為1的切片。 - 將目標
y定義為df在列索引i + seq_length、欄索引為1的切片。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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)