我正在努力学习LSTM,并在LSTM层的结构和输入/输出方面做了一些努力。假设我有这样的网络定义:
timesteps = 50
features = 10
inp = Input(shape=(timesteps, features,), name="input_layer")
x = LSTM(128, return_sequences=True, name="lstm1")(inp)
x = LSTM(64, return_sequences=False, name="lstm2")(x)
x = Dense(128, activation="relu", name="dense1")(x)
x = Dense(64, activation="relu", name="dense2")(x)
x = Dense(1, activation='sigmoid', name="output")(x)
model = Model(inputs=inp, outputs=x)
model.compile(loss='binary_crossentropy', optimizer='adam')我可以在互联网上找到大量关于LSTM单元内部结构的资源。例如,这有一个输入和一些输出的图形。但是我首先想要理解的是,在更高的层次上,LSTM层在不同的配置中提供了什么输入和输出。
假设我的输入数据形状为(1000,50,10)。因此,1000个观察,每一个有50个时间步骤的10个功能。
问题:
我的理解是,第一层("lstm1")将以输入为形状(50,10)。在1000次观测中,每次一次。这10个特性如何输入到LSTM层?它类似于一个密集的层,所以每个输入特性都会以一定的权重进入每个LSTM单元中吗?这的回答似乎表明了这一点,但是我不太明白这个答案中每个LSTM“单元”的多个输入是什么(甚至可能是什么“单元”)。
以及内部运作。这里的"lstm1“是否一次处理所有50个时间步骤,然后生成一个输出?在完成所有50个时间步骤之后,下一个层从这个输出中获得它的输入?输出的形状是什么?是shape=(50,128)吗?那么,在这种情况下,输出“特性”集是否是LSTM层中的单元数呢?由于"return_sequences=True",它还在每个时间步骤输出中间值以产生shape=(50,XXX)输出?
这就引出了我关于"lstm2“层的问题。使用"return_sequences=False",它现在是否输出64个值的单个数组?那么shape=(64)?没有值的每个时间步骤,而是只有一个单位在“展开”单元循环结束?
发布于 2019-02-19 16:25:19
添加
model.summary()产生这个输出
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_layer (InputLayer) (None, 50, 10) 0
_________________________________________________________________
lstm1 (LSTM) (None, 50, 128) 71168
_________________________________________________________________
lstm2 (LSTM) (None, 64) 49408
_________________________________________________________________
dense1 (Dense) (None, 128) 8320
_________________________________________________________________
dense2 (Dense) (None, 64) 8256
_________________________________________________________________
output (Dense) (None, 1) 65
=================================================================
Total params: 137,217
Trainable params: 137,217
Non-trainable params: 0
_________________________________________________________________
参考资料:
https://www.researchgate.net/publication/13853244
https://www.quora.com/What-is-the-meaning-of-%E2%80%9CThe-number-of-units-in-the-LSTM-cell
https://www.quora.com/What-the-difference-between-an-LSTM-memory-cell-and-an-LSTM-layer
https://datascience.stackexchange.com/questions/45781
复制相似问题