我想知道 LSTM 在 Keras 中是如何工作的。在本教程 https://machinelearningmastery.com/time-series-prediction-lstm-recurrent-neural-networks-python-keras/例如,与许多其他内容一样,您可以找到如下内容:
model.add(LSTM(4, input_shape=(1, look_back)))
“4”是什么意思。是该层神经元的数量吗?通过神经元,我的意思是每个实例给出一个输出?
其实我发现这场精彩的讨论 https://stackoverflow.com/questions/37901047/what-is-num-units-in-tensorflow-basiclstmcell但并没有真正相信其中提到的解释给出的参考 https://jasdeep06.github.io/posts/Understanding-LSTM-in-Tensorflow-MNIST/.
在方案上,大家可以看到num_units
如图所示,我认为我说每个单元都是一个非常原子的 LSTM 单元(即 4 个门)并没有错。然而,这些单元是如何连接的?如果我是对的(但不确定),x_(t-1)
是有尺寸的nb_features
,所以每个特征都是一个单元的输入,并且num_unit
必须等于nb_features
right ?
现在,我们来谈谈keras。我读过了这篇文章和接受的答案 https://stackoverflow.com/questions/44273249/in-keras-what-exactly-am-i-configuring-when-i-create-a-stateful-lstm-layer-wi并遇到麻烦。事实上,答案是这样的:
基本上,形状就像 (batch_size, timespan, input_dim),其中input_dim
可以不同于unit
在这种情况下 ?我对之前的参考有麻烦......
此外,它还说,
Keras 中的 LSTM 仅定义了一个 LSTM 块,其单元为单位长度.
好的,但是如何定义完整的 LSTM 层呢?是不是input_shape
隐式创建与数量一样多的块time_steps
(根据我的说法,这是第一个参数input_shape
我的代码中的参数?
谢谢你照亮我
编辑:是否还可以清楚地详细说明如何重塑数据,例如大小(n_samples, n_features)
对于有状态的 LSTM 模型?如何处理 time_steps 和 batch_size ?