Я работаю в сети 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'))
Из этого я получаю очень хорошие прогнозы:
Вверху: прогнозируемый, внизу: метки
Теперь я хочу вычислить длину обнаруженной последовательности, также известной как яма. Вот где я борюсь. Я думал об использовании своего рода окна. все за пределами окна установлено равным 0, все внутри сохраняется как есть. Проблема с этим решением в том, что мои прогнозы неверны. Поскольку я изменяю данные, сеть, кажется, находит яму, даже когда ямы нет. Кто-нибудь знает, как я могу найти длину ямы по-другому?