单元/单元之间的 LSTM 连接(不是时间步长)
Posted
技术标签:
【中文标题】单元/单元之间的 LSTM 连接(不是时间步长)【英文标题】:LSTM connections between cells/units (not timesteps) 【发布时间】:2018-09-15 02:40:10 【问题描述】:我的问题是关于如何构建 LSTM 层,例如在 keras 中:
keras.layers.LSTM(units,... other options)
这些单位是单个细胞还是细胞状态的维度?
我已经阅读了有关该主题的相互冲突的 cmets,有人可以澄清一下,如果所有 LSTM 单元或块都是以 1 个时间步长的延迟互连的不同单元,还是 LSTM 层只是一个单元格,该单元格的维数为“单位”状态?
我已经制作了 3 个图表,第一个是通常显示的正常 LSTM 单元(请随意检查是否有错误),据我了解,另外两个是关于“许多细胞层。
LSTM normal diagramm
LSTM each cell connected to the next in layer
LSTM with all cells connected?
【问题讨论】:
【参考方案1】:单位是 LSTM 层中的单元数。
model.add(LSTM(32))
意味着您正在添加一个 LSTM 层,该层具有 32 个 LSTM 单元,这些单元连接到上一层和下一层。这将导致输出形状为 (batch_size, 32),因为单位也对应于输出形状的维度(当 return_sequences 为假时)。
【讨论】:
感谢您的澄清,但单元格之间是否存在串扰?即传递单元格状态,还是每个单元格被隔离?由于我们无法定义单元状态维度,所以它是 1 吗? 同一层中的单元格没有串扰,但每个单元格都可以访问前一层中每个单元格的输出。传递状态是一个完全不同的故事。通常单元格不会传递状态,但对于像 LSTM 这样的层,您可以使用 return_states 关键字设置此行为。 所以,我看了一下,显然单元状态的尺寸与单位相同:这来自 kerasself.state_size = self.units
的 LSTM 源代码所以...... LSTM 层由LSTM 单元的数量,每个单元都有一个大小为 Units 的单元状态向量,其值从 0 到 1(S 形分布)以上是关于单元/单元之间的 LSTM 连接(不是时间步长)的主要内容,如果未能解决你的问题,请参考以下文章
时间步长与Keras的LSTM输入中的特征之间的差异。有谁可以用一个例子解释一下?