您当前的位置: 首页 >  tensorflow

Better Bench

暂无认证

  • 3浏览

    0关注

    695博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Tensorflow+Keras】tf.keras.layers.LSTM的解析与使用

Better Bench 发布时间:2021-01-16 18:08:58 ,浏览量:3

1 作用原理

实现LSTM网络 原理介绍:长短期记忆模型(Long-Short Term Memory,LSTM)

2 参数

tf.keras.layers.LSTM( units, activation=“tanh”, recurrent_activation=“sigmoid”,#用于重复步骤的激活功能 use_bias=True,#,是否图层使用偏置向量 kernel_initializer=“glorot_uniform”,#kernel权重矩阵的 初始化程序,用于输入的线性转换 recurrent_initializer=“orthogonal”,#权重矩阵的 初始化程序,用于递归状态的线性转换 bias_initializer=“zeros”,#偏差向量的初始化程序 unit_forget_bias=True,#则在初始化时将1加到遗忘门的偏置上 kernel_regularizer=None,#正则化函数应用于kernel权重矩阵 recurrent_regularizer=None,#正则化函数应用于 权重矩阵 bias_regularizer=None,#正则化函数应用于偏差向量 activity_regularizer=None,#正则化函数应用于图层的输出(其“激活”) kernel_constraint=None,#约束函数应用于kernel权重矩阵 recurrent_constraint=None,#约束函数应用于 权重矩阵 bias_constraint=None,#约束函数应用于偏差向量 dropout=0.0,#要进行线性转换的输入单位的分数 recurrent_dropout=0.0,#为递归状态的线性转换而下降的单位小数 return_sequences=False,#是否返回最后一个输出。在输出序列或完整序列中 return_state=False,#除输出外,是否返回最后一个状态 go_backwards=False,#如果为True,则向后处理输入序列并返回反向的序列 stateful=False,#如果为True,则批次中索引i的每个样本的最后状态将用作下一个批次中索引i的样本的初始状态。 time_major=False, unroll=False,#如果为True,则将展开网络,否则将使用符号循环。展开可以加快RNN的速度,尽管它通常会占用更多的内存。展开仅适用于短序列。 )

一般情况下只使用三个参数

  • units 输出空间的维度
  • input_shape (timestep, input_dim),timestep可以设置为None,由输入决定,input_dime根据具体情况
  • activation 激活函数,默认tanh
3 举例使用
inputs = tf.random.normal([32, 10, 8])
lstm = tf.keras.layers.LSTM(4)
output = lstm(inputs)
print(output.shape)
#(32, 4)
lstm = tf.keras.layers.LSTM(4, return_sequences=True, return_state=True)
whole_seq_output, final_memory_state, final_carry_state = lstm(inputs)
print(whole_seq_output.shape)
#(32, 10, 4)
print(final_memory_state.shape)
#(32, 4)
print(final_carry_state.shape)
#(32, 4)
关注
打赏
1665674626
查看更多评论
立即登录/注册

微信扫码登录

0.0386s