【发布时间】:2019-01-26 16:52:00
【问题描述】:
我想知道 LSTM 在 Keras 中是如何工作的。例如,在this tutorial 中,和许多其他地方一样,您可以找到类似这样的内容:
model.add(LSTM(4, input_shape=(1, look_back)))
“4”是什么意思。是层中神经元的数量吗?我所说的神经元是指每个实例都提供一个输出的东西?
实际上,我找到了this brillant discussion,但对the reference given中提到的解释并没有真正信服。
在方案上,可以看到num_unitsillustrated,我认为我说这个单元中的每一个都是一个非常原子的 LSTM 单元(即 4 个门)并没有错。但是,这些单元是如何连接的?如果我是对的(但不确定),x_(t-1) 的大小是 nb_features,所以每个特征都是一个单元的输入,num_unit 必须等于 nb_features 对吗?
现在,让我们谈谈 keras。我已阅读this post and the accepted answer 并遇到了麻烦。确实,答案是:
基本上,形状就像 (batch_size, timespan, input_dim),其中input_dim 可以不同于unit
在什么情况下?我之前的参考资料有问题...
此外,它说,
Keras 中的 LSTM 只定义了一个 LSTM 块,其单元是单位长度的。
好的,但是如何定义完整的 LSTM 层?是input_shape 隐含地创建了与time_steps 数量一样多的块(据我所知,这是我的代码中input_shape 参数的第一个参数?
谢谢你照亮我
编辑:是否也可以清楚地详细说明如何为有状态 LSTM 模型重塑大小为(n_samples, n_features) 的数据? time_steps 和 batch_size 怎么处理?
【问题讨论】: