在 TensorFlow 中设置 RNN 以进行具有可变输入序列长度的时间序列预测

数据挖掘 神经网络 张量流 时间序列 lstm rnn
2022-03-11 19:47:40

我正在建立一个keras用于时间序列预测的模型。问题的结构如下:

  • 输入是 5 个数字特征的时间序列
  • 输出是一个二进制类(0 或 1)
  • 该模型需要预测可变长度的输入数据。例如,在某些情况下,我可能只有前 2 天可用于样品,而在其他情况下,我可能有 7 天。

这是我在模型中设置图层的方式:

import tensorflow as tf

model = tf.keras.Sequential()
model.add(tf.keras.layers.LSTM(64, input_shape=(None, 5))
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))

在对恒定大小的序列进行训练并在相同大小上进行预测时,我看到了良好的性能。但是,我不确定如何最好地配置和训练模型以处理可变长度输入。

我想知道当序列的长度不同时,引擎盖下是否会出现零填充。0 的值对于我正在使用的功能是常见且有意义的,因此在这种情况下用 0 填充缺失的数据是没有意义的。

我也想知道在这种情况下人们通常如何构建他们的训练集。我可以执行以下任何操作:

  • 每个样本只包含一次随机输入长度
  • 每个可能的输入长度包含每个样本一次,每次输入长度不同
  • 每个样本只包含一次,最大输入长度

第三个似乎不正确,因为模型可能需要查看长度较短的训练示例才能对其进行预测。

0个回答
没有发现任何回复~