【问题标题】:difference between LSTM(512) and LSTMCELL(512)LSTM(512) 和 LSTMCELL(512) 的区别
【发布时间】:2022-06-16 17:48:02
【问题描述】:
检查了源代码,但仍然很难找到 tf.keras.layers.LSTM(512) 和 tf.keras.layers.LSTMCell(512) 之间的区别
在许多编码器-解码器的文章中,在编码器处使用 LSTM(512),在解码器处使用 LSTMCell(512)。
这两者有什么区别?为什么编码器和解码器会有这样的区别?
谢谢!
【问题讨论】:
标签:
python
tensorflow
keras
encoder-decoder
【解决方案1】:
cell 对象是循环层的一部分。 循环层控制单元并执行实际的循环计算,而单元包含每个步骤的计算的主要代码。
从here可以看出LSTMCell是LSTM层的一部分。
LSTM 是循环层。
LSTMCell 是 LSTM 层使用的对象,包含一步的计算逻辑。
在编码器-解码器网络中,
-
LSTM 用于编码器,因为每个时间步的输出都会被丢弃。
-
LSTMCell 用于解码器,因为它在每个时间步处理一个单词。