Python 如何矢量化LSTM?

Python 如何矢量化LSTM?,python,neural-network,theano,deep-learning,lstm,Python,Neural Network,Theano,Deep Learning,Lstm,特别是,我对LSTM层有(比如)50个单元意味着什么感到困惑。考虑以下的LSTM块: 假设我的输入xt是(20,)向量,而隐藏层ht是(50,)向量。假设单元状态Ct在成为新的隐藏状态之前只经历点操作(点操作tanh和*),我收集到Ct.shape=ht.shape=(50,)。现在遗忘门查看与隐藏层连接的输入,这将是一个(20+50,)=(70,)向量,这意味着遗忘门必须有一个形状(50,70)的权重矩阵,这样点(W,[xt,ht])。形状=(50,) 所以我在这一点上的问题是,当Ct.sh

特别是,我对LSTM层有(比如)50个单元意味着什么感到困惑。考虑以下的LSTM块:

假设我的输入
xt
(20,)
向量,而隐藏层
ht
(50,)
向量。假设单元状态
Ct
在成为新的隐藏状态之前只经历点操作(点操作
tanh
*
),我收集到
Ct.shape=ht.shape=(50,)
。现在遗忘门查看与隐藏层连接的输入,这将是一个
(20+50,)=(70,)
向量,这意味着遗忘门必须有一个形状
(50,70)
的权重矩阵,这样
点(W,[xt,ht])。形状=(50,)


所以我在这一点上的问题是,当
Ct.shape=(50,)
时,我是在看一个有50个单元格的LSTM块吗?或者我误解了LSTM层有50个单元意味着什么

我理解你对什么感到困惑。所以基本上,连接顶部两个盒子的黑线,代表细胞状态,实际上是一组非常小的50条线组合在一起。它们逐点与遗忘门的输出相乘,遗忘门的输出由50个值组成。这50个值与单元状态逐点相乘