假如数据集是(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
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐