Что такое архитектура за Керрас осуществления слой ЛСТМ?


Как входные измерения преобразуются в выходные измерения для слоя LSTM в Керасе? Из чтения сообщения в блоге Колаха , кажется, что число "timesteps" (он же input_dim или первое значение в input_shape) должно равняться числу нейронов, которые должны равняться числу выходов из этого слоя LSTM (очерченного аргументом units Для слоя LSTM).

Из чтения этого поста, я понимаю входные формы. Что меня озадачивает, так это как Керас подключает входы к каждому из "умных нейронов" LSTM.

Keras LSTM reference

Пример кода, который ставит меня в тупик:

model = Sequential()
model.add(LSTM(32, input_shape=(10, 64)))
model.add(Dense(2))
Исходя из этого, я бы предположил, что слой LSTM имеет 10 нейронов, и каждый нейрон получает вектор длиной 64. Однако, похоже, что у него 32 нейрона, и я понятия не имею, что подается в каждый из них. Я понимаю, что для подключения LSTM к плотному слою мы можем просто подключить все 32 выхода к каждому из 2 нейронов. Что меня смущает, так это InputLayer к LSTM.

(похожий так пост, но не совсем то, что мне нужно )

1 2

1 ответ:

Я был прав! Архитектура состоит из 10 нейронов, каждый из которых представляет собой временной шаг. Каждый нейрон получает вектор длины 64, представляющий 64 объекта (input_dim).

32 представляет собой число скрытых состояний или"скрытую длину единицы измерения". Он представляет, сколько скрытых состояний существует, а также представляет выходное измерение (поскольку мы выводим скрытое состояние в конце LSTM).

Наконец, 32 выхода затем подаются в плотный слой из 2 нейронов, который в основном значит, подключите 32 длина вектора, как нейроны.

Больше чтения с несколько полезными ответами: