如何使用滑动窗口方法创建多输出回归的数据集



我想建立正常的DNN模型,我有X_train= 8000000x7和y_train=8000000x2的巨大数据。如何创建一个具有100个数据点滑动窗口的数据集来馈送神经网络。

如果我使用以下代码使用自定义数据集,由于数据集大,我有一个分配问题。

def data_set(x_data, y_data, num_steps=160):
X, y = list(), list()
# Loop of the entire data set
for i in range(x_data.shape[0]):
# compute a new (sliding window) index
end_ix = i + num_steps
# if index is larger than the size of the dataset, we stop
if end_ix >= x_data.shape[0]:
break
# Get a sequence of data for x
seq_X = x_data[i:end_ix]
# Get only the last element of the sequency for y
seq_y = y_data[end_ix]
# Append the list with sequencies
X.append(seq_X)
y.append(seq_y)
# Make final arrays
x_array = np.array(X)
y_array = np.array(y)
return x_array, y_array

因此,为了避免这种情况,我可以使用任何数据集生成器与滑动窗口一起馈送到DNN。

Thanks in advance

您可以使用dataset.window方法来实现。

dataset = tf.data.Dataset.from_tensor_slices((X_train, y_train))
stride = 1
dataset = dataset.window(batch_size, shift=batch_size-stride, drop_remainder=True)

相关内容

  • 没有找到相关文章

最新更新