LSTM 的官方文档在这里
在例子中:
LSTM 函数的参数为输入特征向量的长度 input_size = 10、隐藏层向量的长度 hidden_size = 20、隐藏层的数量 num_layers = 2;
输入 input 的维度是时间/序列长度(句子有多少个单词) time_steps = 5、批量 batch = 3、输入特征向量的长度 input_size = 10;
初始的隐藏层向量与状态向量的维度都是隐藏层的数量 num_layers = 2、批量 batch = 3、隐藏层向量的长度 hidden_size = 20
LSTM 就是中间的红色框,它将输入(蓝色框)和初始的隐藏层向量与状态向量(黄色框)作为输入,输出的是最终的隐藏层向量与状态向量(绿色框)。
LSTMCell 的官方文档在这里
在例子中:
LSTMCell 函数的参数为输入特征向量的长度 input_size = 10、隐藏层向量的长度 hidden_size = 20;
输入 input 的维度是时间/序列长度(句子有多少个单词) time_steps = 5、批量 batch = 3、输入特征向量的长度 input_size = 10;
初始的隐藏层向量与状态向量的维度都是批量 batch = 3、隐藏层向量的长度 hidden_size = 20
对比即可得知,LSTMCell 就是图中的红色框,实际上就是一个隐藏层神经元,所以它没有 LSTM 中隐藏层数量这个参数。使用 LSTMCell 的方法就是 for 循环,遍历次数为时间/序列长度;LSTM 则是优化了这个 for 循环。