Lstm输入参数详细解释

Lstm输入参数详细解释:

比如建立双层lstm,以mnist数据集来进行叙述:
我们知道mnist数据集,是28*28;用lstm训练mnist数据集过程;
在这里插入图片描述

def DoubleLSTM(train_x,train_y,valid_x,valid_y,test_x,test_y):
    #创建模型
    model=Sequential()
    model.add(LSTM(64,input_shape=(28,28),return_sequences=True))  #返回所有节点的输出
    model.add(LSTM(32,return_sequences=False))  #返回最后一个节点的输出
    model.add(Dense(10,activation='softmax'))
    #查看网络结构
    model.summary()

输出结果:
Layer (type)                 Output Shape              Param #   
=================================================================
lstm_5 (LSTM)                (None, 28, 64)            23808     
_________________________________________________________________
lstm_6 (LSTM)                (None, 32)                12416     
_________________________________________________________________
dense_5 (Dense)              (None, 10)                330       
=================================================================
Total params: 36,554
Trainable params: 36,554
Non-trainable params: 0

model.add(LSTM(64,input_shape=(28,28),return_sequences=True)) #64表示,输出的维度是64,也即是隐层维度,input_shape(time_step,feature_dim)中,time_step表示有多少个作为输入,feature_dim表示每次输入的一维向量。return_sequences=True表示返回所有节点的输出。

例如:计算输出参数

第一层model.add(LSTM(64,input_shape=(28,28),return_sequences=True)),它的参数很好计算。可以知道隐层是(1 * 64),输入向量(1 * 28),则联合输入是(1 * (64+28)),因为输出是(1 * 64),则W的参数(92 * 64),再加上b的参数(1 * 64).即一个门的参数是(92 * 64)+64=5952,又因为有3个门和1个细胞状态更新,即5952 * 4=23808,计算完毕。

  • 14
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值