Keras:随着时间的推移分类

时间:2017-06-08 15:53:38

标签: keras shape lstm

我尝试对系统的状态进行分类。

我有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:检查目标时出错:预期time_distributed_3有3个维度,但得到的数组有形状(100,1)

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

问候。

1 个答案:

答案 0 :(得分:2)

您提供的模型需要序列的每个时间步长的目标。如果整个序列只有一个目标(并且错误消息中的目标形状表明了这一点),则需要按以下方式修改模型:将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'])
相关问题