了解时间戳在 Keras LSTM 中的作用

Understanding the role of timestamp in Keras LSTM

给定一个包含 10232 个信号的信号数据集,每个 200K 暗淡 (10232, 200000) 用于分类目的。我对 Keras LSTM 的理解是它接受 (samples, timestamp, features) 格式的数据。看了很多文章,原来 LSTM Keras 只接受 3D 的数据,所以我们应该先将输入数据从 2D 扩展到 3D。以下是截图代码:

X = np.expand_dims(X, -1) # ---> (10232, 200000, 1)
input_layer = Input(shape=(X.shape[1], X.shape[2]))
lstm_ = LSTM(64, return_sequences=True)(input_layer)
lstm_ = Dropout(0.2)(lstm_)
lstm_ = LSTM(32, return_sequences=True)(lstm_)
lstm_ = Dropout(0.2)(lstm_)
lstm_ = LSTM(8)(lstm_)
output_layer = Dense(1, activation='sigmoid')(lstm_)
model = Model(inputs=input_layer, outputs=output_layer)

使时间戳等于每个时间序列的 dim X.shape[1]。我的问题是:如果我选择 timestamp= 1000,即 Input(shape=(1000, X.shape[2])),会发生什么?我认为这意味着它以某种方式将最初为 dim= 200K 的每个时间序列划分为每个 dim= 1000 的样本。Keras 会为我创建这些样本,每个样本都有 dim= 1000 还是我应该手动执行?

谢谢

如果您进行这些更改 - 您应该将 1000 个而不是 200K 个序列提供给网络。 Keras 不会自动分割——你必须手动分割。你应该为每个 1000 的序列准备标签。