Keras:随时间分类

Keras : Classification over time

我尝试对一段时间内我的系统状态进行分类。

我有 100 个训练样本,包含超过 1218 个时间步长和 33 个输入参数。

所以我有 X_train.shape = [100, 1218, 33].

我使用深度学习库 Keras 来预测输出 Y = 0 或 1。

model = Sequential()
model.add(LSTM(4, input_shape=(1218 , 33), return_sequences=True))
model.add(TimeDistributed(Dense(1, activation = 'softmax')))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

不幸的是,我遇到以下错误,我不知道如何解决:

ValueError: Error when checking target: expected time_distributed_3 to have 3 dimensions, but got array with shape (100, 1)

有人知道如何解决这个问题吗?

此致。

您提供的模型需要一个序列的每个时间步长的目标。如果整个序列只有一个目标(并且错误消息中目标的形状表明了这一点),则需要按以下方式修改模型:将 return_sequences 设置为 false 并删除TimeDistributed 包装器:

model = Sequential()
model.add(LSTM(4, input_shape=(1218 , 33), return_sequences=False))
model.add(Dense(1, activation = 'softmax'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])