假如数据集是(5000,28,128),
其中5000指的是样本个数,(28,128)便是具体每个样本的行列数,28就是lstm中的时间步数;
假如定义一个lstm层为 LSTM(output_dim= 256,activation=,input_shape= (28,128)),
那么每个时间步输出的是一个元素个数为256的一阶向量,所有时间步集合起来就是(28,256)的二阶向量。
至于模型是用所有时间步的输出,还是只用最后一个,就看具体怎么设计了。
对应:(N,T,F)=>(5000,28,128)
文本:N个样本,每个样本长度为T个词语,Ti 的词向量维度为128,
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
model = Sequential()
hidden_feature = 256 # 隐藏层的神经单元个数
timestamp = 28
input_feature = 128
model.add(LSTM(hidden_featrue, input_shape=(timestamp, input_feature)))
# 参数计算方法
4 * (( 128 + 256 ) * 256 + 256 )
作者:知乎用户
链接:https://www.zhihu.com/question/41949741/answer/232424403
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。