如何对LSTM进行矢量化?

时间:2015-10-23 10:51:31

标签: python neural-network theano deep-learning lstm

特别是,我对LSTM层具有50个单元格意味着什么感到困惑。考虑来自this awesome blog post的以下LSTM块:

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

说我的输入xt(20,)向量,隐藏图层ht(50,)向量。鉴于在成为新的隐藏状态之前,单元状态Ct仅经历了逐点操作(逐点tanh*),我收集Ct.shape = ht.shape = (50,)。现在,忘记门会查看与隐藏层连接的输入,这将是(20+50,) = (70,)向量,这意味着忘记门必须具有形状为(50, 70)的权重矩阵,以便dot(W, [xt, ht]).shape = (50,)

所以我现在的问题是,在Ct.shape = (50,)时,我是否正在查看包含50个单元格的LSTM块?或者我误解了LSTM层有50个单元意味着什么?

1 个答案:

答案 0 :(得分:1)

我明白你的困惑。基本上,连接顶部两个框表示单元状态的黑线实际上是一组非常小的50行组合在一起。它们与忘记门的输出相乘,其输出由50个值组成。这50个值与单元状态相乘。