Я создаю модель LSTM для классификации некоторых данных обзора с помощью Keras. Вывод просто 1 или 0.
Я добавил слой встраивания слов перед тем, как передать текстовые данные в слой lstm. Часть моего кода показана ниже. Здесь max_feature — размер словарного запаса. Размер вектора Word — 2. Размер каждого документа — maxlen. Весь документ уже дополнен до одинаковой длины.
Однако меня всегда смущает длина слоя LSTM. Должна ли она быть той же длины, что и длина моих документов (maxlen)? Ввести все слова в каждый документ и получить результат?.....
Есть довольно много онлайн-источников, объясняющих LSTM. Но с точки зрения реализации, я чувствую, что не многие из них дают четкие объяснения...
Очень признателен, если кто-то может прояснить это.
# max_features: vocabulary size
# word vector size: 2
# maxlen: my document size, already padded to the same length
# Build our model
print('Build model...')
model = Sequential()
model.add(Embedding(input_dim=max_features, output_dim= 2, input_length=maxlen ))
model.add(LSTM(units= ???? ))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])