单项LSTM
重要的输入参数
-
input_size: 每一个时步(time_step)输入到lstm单元的维度.(实际输入的数据size为[batch_size,
input_size]) -
hidden_size:
确定了隐含状态hidden_state的维度. 可以简单的看成: 构造了一个权重矩阵,隐含状态 -
num_layers:
叠加的层数。如图所示num_layers为2
-
dropout:默认为0,范围0-1
-
batch_first: 输入数据的size为[batch_size,
time_step, input_size]
重要的输出参数
-
output: 如果num_layer为3,则output只记录最后一层(即,第三层)的输出
l 对应图中向上的各个time_step的,也即output
l 其size根据batch_first而不同,可能是[batch_size,
time_step, hidden_size] -
h_n: 各个层的最后一个时步的隐含状态h.
l size为[num_layers,batch_size,
hidden_size] -
c_n: 各个层的最后一个时步的隐含状态C
l c_n可以看成另一个隐含状态,size和h_n相同
其中对于每个时间点原始输入维度为10。
代码如下:
注意:这个实例与前面讲述中,由于参数’batch_first’的不同,排列为[序列长度,batch_size,输入维度]。
双向LSTM
输入:其余均与单项相同,仅需将参数bidirectional改为True。举例