生成序列
为了在序列数据上训练神经网络,您需要先对数据进行预处理。您将把数据分块为 输入-目标 对:输入包含若干个连续的数据点,目标是它们之后的下一个数据点。
您的任务是定义一个名为 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
本练习是课程的一部分
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)