Что такое архитектура за Керрас осуществления слой ЛСТМ?
Как входные измерения преобразуются в выходные измерения для слоя LSTM в Керасе? Из чтения сообщения в блоге Колаха , кажется, что число "timesteps"
(он же input_dim
или первое значение в input_shape
) должно равняться числу нейронов, которые должны равняться числу выходов из этого слоя LSTM (очерченного аргументом units
Для слоя LSTM
).
Из чтения этого поста, я понимаю входные формы. Что меня озадачивает, так это как Керас подключает входы к каждому из "умных нейронов" LSTM.
Пример кода, который ставит меня в тупик:
model = Sequential()
model.add(LSTM(32, input_shape=(10, 64)))
model.add(Dense(2))
Исходя из этого, я бы предположил, что слой LSTM имеет 10 нейронов, и каждый нейрон получает вектор длиной 64. Однако, похоже, что у него 32 нейрона, и я понятия не имею, что подается в каждый из них. Я понимаю, что для подключения LSTM к плотному слою мы можем просто подключить все 32 выхода к каждому из 2 нейронов. Что меня смущает, так это InputLayer к LSTM.
1 ответ:
Я был прав! Архитектура состоит из 10 нейронов, каждый из которых представляет собой временной шаг. Каждый нейрон получает вектор длины 64, представляющий 64 объекта (input_dim).
32 представляет собой число скрытых состояний или"скрытую длину единицы измерения". Он представляет, сколько скрытых состояний существует, а также представляет выходное измерение (поскольку мы выводим скрытое состояние в конце LSTM).
Наконец, 32 выхода затем подаются в плотный слой из 2 нейронов, который в основном значит, подключите 32 длина вектора, как нейроны.
Больше чтения с несколько полезными ответами: