先附上代码:
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
如有其他疑问,欢迎留言交流。