根据我在网上阅读的信息,LSTM中的隐藏状态是根据输入/时间步骤生成的,例如,参见图像https://i.stack.imgur.com/SjnTl.png。
但是,在Tensorflow中,隐藏状态的数量似乎是num_units,从我在线阅读的各种示例中,num_units可能与输入中的时间步长有很大不同。 (例如,对于28 * 28 MNIST图像输入,行的28个时间步可以有500 num_units。)
隐藏状态/ num_units在这里如何工作?
此外,我还看到在连接在一起的不同LSTM层中具有不同数量的隐藏状态的示例吗?在这种情况下,LSTM层如何连接?
答案 0 :(得分:0)
num_units
或隐藏状态的大小与时间步长无关。隐藏状态是大小为num_units
的向量,将在每个时间步更新。因此,在链接的图中,如果我们看第一层(第0层),则h1(0)
是长度为num_units
的向量,h1(0)
,{{1}也是} ...
在不同的层之间,h2(0)
不必相同。较高层的num_units
必须等于直接较低层的input_size
,因为较低层的隐藏状态会作为输入馈送到高层。有关输入向量如何与隐藏状态向量连接的详细信息,请在Google LSTM单元格中进行搜索,您会找到一些很好的解释。