当前位置:   article > 正文

LSTM代码实现

lstm代码

单项LSTM

重要的输入参数

  1. input_size: 每一个时步(time_step)输入到lstm单元的维度.(实际输入的数据size为[batch_size,
    input_size])

  2. hidden_size:
    确定了隐含状态hidden_state的维度. 可以简单的看成: 构造了一个权重矩阵,隐含状态

  3. num_layers:
    叠加的层数。如图所示num_layers为2

在这里插入图片描述

  1. dropout:默认为0,范围0-1

  2. batch_first: 输入数据的size为[batch_size,
    time_step, input_size]

重要的输出参数

在这里插入图片描述

  1. output: 如果num_layer为3,则output只记录最后一层(即,第三层)的输出
    l 对应图中向上的各个time_step的,也即output
    l 其size根据batch_first而不同,可能是[batch_size,
    time_step, hidden_size]

  2. h_n: 各个层的最后一个时步的隐含状态h.
    l size为[num_layers,batch_size,
    hidden_size]

  3. c_n: 各个层的最后一个时步的隐含状态C
    l c_n可以看成另一个隐含状态,size和h_n相同

在这里插入图片描述

其中对于每个时间点原始输入维度为10。

代码如下:

在这里插入图片描述

注意:这个实例与前面讲述中,由于参数’batch_first’的不同,排列为[序列长度,batch_size,输入维度]。

双向LSTM

输入:其余均与单项相同,仅需将参数bidirectional改为True。举例
在这里插入图片描述

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号