Как установить длину входного слоя в lstm - PullRequest
0 голосов
/ 24 февраля 2019

Я строю модель LSTM для классификации некоторых данных обзора с использованием Keras.Вывод только 1 или 0.

Я добавил слой встраивания слов перед подачей текстовых данных в слой lstm.Часть моего кода показана ниже.Здесь max_feature - это размер словаря.Размер вектора слова равен 2. Размер каждого документа maxlen.Весь документ уже дополнен до одинаковой длины.

Однако я всегда путаюсь с длиной слоя LSTM.Должна ли она быть такой же длины, как длина моих документов (макслен)?Введите все слова в каждом документе и получите вывод? .....

Существует довольно много онлайн-источников, объясняющих 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'])

1 Ответ

0 голосов
/ 24 февраля 2019

Количество единиц в LSTM не имеет отношения к измерениям данных, единицы - это количество нейронов / узлов в слое LSTM.LSTM является рекурсивной сетью, параметры которой используются снова и снова на одном и том же уровне: image taken from http://colah.github.io/posts/2015-08-Understanding-LSTMs/

«A» представляет ячейку LSTM, а количество «A» одинаковокак ваша длина ввода.Единицы представляют скрытые размеры «А».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...