我想知道LSTM如何在Keras工作.例如,在本教程中,与许多其他教程一样,您可以找到如下内容:
model.add(LSTM(4, input_shape=(1, look_back)))
Run Code Online (Sandbox Code Playgroud)
"4"是什么意思.它是图层中神经元的数量.通过神经元,我的意思是每个实例给出一个输出?
实际上,我发现了这个明智的讨论, 但并没有真正相信参考文献中提到的解释.
在该方案中,人们可以看到num_units说明,我认为我没有错的话,每个这个单位是一个非常原子LSTM单元(即4门).但是,这些单位是如何连接的?如果我是对的(但不确定),x_(t-1)是大小nb_features,所以每个功能都是一个单位的输入,num_unit必须等于nb_features正确?
现在,我们来谈谈keras.我已阅读此帖和接受的答案并遇到麻烦.的确,答案是:
基本上,形状就像(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?
首先,units在 LSTM 中,不是time_steps 的数量。
每个 LSTM 单元(出现在给定的 time_step 处)接受输入x并形成一个隐藏状态向量,这个隐藏单元向量的长度就是LSTM(Keras)中a所谓的长度。units
您应该记住,代码只创建了一个 RNN 单元
\n\nkeras.layers.LSTM(units, activation=\'tanh\', \xe2\x80\xa6\xe2\x80\xa6 )\nRun Code Online (Sandbox Code Playgroud)\n\nRNN 操作由类本身重复 Tx 次。
\n\n我将其链接起来,以帮助您通过非常简单的代码更好地理解它。
\n您可以(某种程度上)将其视为完全连接的层。单位是神经元。
与大多数众所周知的层类型一样,输出的维度是神经元的数量。
不同之处在于,在 LSTM 中,这些神经元不会完全相互独立,它们会由于隐藏在底层的数学运算而相互通信。
在进一步讨论之前,看一下关于 LSTM、其输入/输出以及 stative = true/false 的用法的非常完整的解释可能会很有趣:了解 Keras LSTM。请注意,您的输入形状应该是input_shape=(look_back, 1)。输入形状为(time_steps, features)。

在哪里input_shape = (batch_size, arbitrary_steps, 3)
每个 LSTM 层将不断重复使用相同的单元/神经元,直到处理完输入中的所有任意时间步。
(batch, arbitrary_steps, units)如果return_sequences=True。(batch, units)如果return_sequences=False。units。units。准确地说,将有两组单元,一组处理原始输入,另一组处理来自最后一步的已处理输入。由于内部结构的原因,每组都会有一些比单元数大4倍的参数(这个4与图像无关,是固定的)。
流动:
return_sequences=False) 或所有 ( return_sequences = True) 步骤
return_sequences=False) 或所有 ( return_sequences = True) 步骤| 归档时间: |
|
| 查看次数: |
1026 次 |
| 最近记录: |