2015-10-23 5 views
3

В частности, я смущен тем, что означает, что для слоя LSTM есть (скажем) 50 ячеек. Рассмотрим следующий LSTM блок из this awesome blog post:Как векторизовать LSTM?

LSTM Model from http://colah.github.io/posts/2015-08-Understanding-LSTMs/

Say мой вход xt является (20,) вектор и скрытый слой ht является (50,) вектор. Учитывая, что состояние ячейки Ct подвергается только точечным операциям (по очкам tanh и *), прежде чем стать новым скрытым состоянием, я нахожу это Ct.shape = ht.shape = (50,). Теперь затворы затвора смотрят на вход, объединенный со скрытым слоем, который будет представлять собой вектор (20+50,) = (70,), что означает, что затвор-затвор должен иметь весовую матрицу формы (50, 70), такую ​​как dot(W, [xt, ht]).shape = (50,).

Итак, мой вопрос в этом вопросе заключается в том, что я смотрю на блок LSTM с 50 ячейками, когда Ct.shape = (50,)? Или я не понимаю, что значит для слоя LSTM иметь 50 ячеек?

ответ

1

Я понимаю, с чем вы сбиваетесь. Таким образом, черная линия, соединяющая два блока в верхней части, которая представляет состояние ячейки, на самом деле представляет собой набор очень маленьких 50 строк, сгруппированных вместе. Они получают умноженную точку с выходом затвора, который имеет выход, состоящий из 50 значений. Эти 50 значений умножаются на точку состояния ячейки.

Смежные вопросы