【问题标题】:detecting length of pattern in a sequence with lstm in keras在keras中使用lstm检测序列中的模式长度
【发布时间】:2018-05-11 14:38:22
【问题描述】:

我正在使用 LSTM 网络来检测道路上的坑。我有一个数据集,其中包含汽车每个车轮的轮速。当出现坑时,接下来的 40 个标签为“1”。所有其他标签均为“0”。这是我的模型:

model = Sequential()
model.add(LSTM(64,input_shape=(len(X_train[0]),1),return_sequences=True))
model.add(Dropout(0.5))
model.add(Activation('relu'))
model.add(BatchNormalization())
model.add(LSTM(64,input_shape=(len(X_train[0]),1),return_sequences=True))
model.add(Dropout(0.5))
model.add(Activation('relu'))
model.add(BatchNormalization())
model.add(TimeDistributed(Dense(1)))
model.add(Activation('sigmoid'))

由此我得到了一些非常好的预测: Top: predicted, bottom: labels 现在我想计算发现序列的长度,也就是坑本身。这就是我挣扎的地方。我正在考虑使用某种窗口。窗外的一切都设置为 0,里面的一切都保持原样。这个解决方案的问题是我的预测是错误的。因为我更改了数据,所以即使没有坑,网络似乎也找到了坑。有谁知道我如何以不同的方式找到坑的长度?

【问题讨论】:

    标签: keras sequence lstm pattern-recognition


    【解决方案1】:

    假设坑是连续的,而不是预测每个点是否坑,你可以让网络根据移动窗口预测从正常到坑和坑到正常的变化。这仍然是一个多标签分类问题。现在,您可以根据模型预测的变化点计算坑的长度,知道您从法线表面开始。

    【讨论】:

    • 我很确定这是不可能的。一个坑只有在它通过时才能被检测到。所以在坑的开始贴标签是没有选择的。此时尚未确定任何内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 2018-07-03
    相关资源
    最近更新 更多