machine-learning - LSTM() 和 LSTMCell() 有什么区别?

标签 machine-learning keras

我检查了这两个函数的源代码,似乎 LSTM() 使 LSTM 网络变得通用,而 LSTMCell() 只返回一个单元格。

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

最佳答案

  • LSTM 是一个循环层
  • LSTMCell 是一个对象(恰好也是一个层)由 LSTM 层使用,其中包含一步的计算逻辑.

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

通常,人们在代码中使用 LSTM 层。
或者他们使用包含 LSTMCellRNN 层。

这两件事几乎是一样的。 LSTM 层是使用 LSTMCellRNN 层,您可以在 source code 中查看。 。

关于单元格数量:

虽然从它的名字来看,LSTMCell 是一个单一的单元,但它实际上是一个管理我们所认为的所有单元/单元的对象。在提到的同一代码中,您可以看到在创建 LSTMCell 实例时使用了 units 参数。

关于machine-learning - LSTM() 和 LSTMCell() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48187283/

相关文章:

java - 如何在使用 Weka Java API 执行线性回归时处理字符串值

Tensorflow物体检测: why is the location in image affecting detection accuracy when using ssd mobilnet v1?

python - Keras 回调 AttributeError : 'ModelCheckpoint' object has no attribute '_implements_train_batch_hooks'

c# - 在 C# 或 Unity 中执行 Python 脚本

python - 使用 Xception CNN 训练自定义图像时出现奇怪的错误

多个正分类的 Tensorflow 损失计算

python - 简单机器学习模型训练返回Nan

machine-learning - 如何获得逻辑回归特征对于特定预测的相对重要性?

c# - 在 C# 中加载用 python 构建的 keras 模型?

python - Keras - 在学习情绪数据后预测模型会抛出错误