用例子与代码详解LSTM层的输入输出,以Keras为例

先附上代码:

from keras import Sequential
from keras.layers import LSTM

model = Sequential()
model.add(LSTM(64))  #64表示input_dim,即每个时间步输入的向量的维度

#输入为2个句子,即2个样本,Batchsize=2,3个时间步,每个时间步的输入是64维,如X0,
# 注意:每个时间步不一定只输入一个单词,如一个单词的维度为32,那么这个时间步就是输入了两个单词,即Word0和word1共同构成了X0
input_array = np.random.randint(10, size=(2,3,64))

model.compile('rmsprop', 'mse')
output_array = model.predict(input_array)
print(output_array.shape)
assert output_array.shape == (2,64)

然后附上图解:

注:如果是Bidirectional(LSTM())则输出维度会变成(batch_size,128)

参考资料(如果对于上述例子感觉迷惑,建议阅读参考资料后再回顾一遍):

https://keras.io/zh/layers/recurrent/#lstm

https://www.jianshu.com/p/c66369cfa0c7

如有其他疑问,欢迎留言交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章