【问题标题】:Keras : Classification over timeKeras:随着时间的推移分类
【发布时间】:2017-06-08 15:53:37
【问题描述】:

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

我有 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)

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

问候。

【问题讨论】:

  • 你有每个时间步的目标值还是整个序列只有一个目标?

标签: keras shape lstm


【解决方案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'])

【讨论】:

  • 感谢您的回答。我想我很累,因为我没有注意到错误是关于目标而不是关于输入的。我明天试试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多