LSTM()和LSTMCell()有什么区别?

时间:2018-01-10 12:14:46

标签: machine-learning keras

我检查了两个函数的源代码,似乎LSTM()通常生成LSTM网络,而LSTMCell()只返回一个单元格。

但是,在大多数情况下,人们只在他们的程序中使用一个LSTM Cell。这意味着当你只有一个LSTM Cell(例如简单的Seq2Seq)时,调用LSTMCell()和LSTM()会没有区别吗?

1 个答案:

答案 0 :(得分:21)

  • LSTM经常性图层
  • LSTMCell是一个对象(恰好也是一个图层)由LSTM图层使用,包含一步的计算逻辑。

重复图层包含一个单元格对象。单元格包含用于计算每个步骤的核心代码,而循环层命令单元格并执行实际的循环计算。

通常,人们会在代码中使用LSTM个图层 或者他们使用包含RNN的{​​{1}}个图层。

两件事情几乎相同。 LSTMCell图层是使用LSTM的{​​{1}}图层,您可以在source code中查看。

关于细胞数量

看来,由于其名称,RNN是一个单一的单元格,它实际上是一个管理所有单元/单元的对象,正如我们想象的那样。在提到的相同代码中,您可以看到在创建LSTMCell的实例时使用了LSTMCell参数。