模具公司网站中品质见证怎么做,人力资源公司名称大全简单大气,明会红网站,做标书有哪些网站能接到上一篇文章中我们提到#xff0c;CRNN模型中用于预测特征序列上下文的模块为双向LSTM模块#xff0c;本篇中就来针对该模块的结构和实现做一些理解。
Bidirectional LSTM模块结构如下图所示#xff1a; 在Pytorch中#xff0c;已经集成了LSTM模块#xff0c;定义如下CRNN模型中用于预测特征序列上下文的模块为双向LSTM模块本篇中就来针对该模块的结构和实现做一些理解。
Bidirectional LSTM模块结构如下图所示 在Pytorch中已经集成了LSTM模块定义如下
CLASStorch.nn.LSTM(self, input_size, hidden_size, num_layers1, biasTrue, batch_firstFalse, dropout0.0, bidirectionalFalse, proj_size0, deviceNone, dtypeNone) 参数说明
input_size输入的feature数hidden_size隐藏状态h的的feature数num_layers递归层的数量。如果num_layers2意味着将两个LSTM堆叠在一起第二个LSTM模块的输入为第一个LSTM的输出由第二个LSTM输出最终结果。bias偏置默认为True若设为False则不使用b_ih和b_hh这两个参数会在下文说明batch_first为True时输入和输出形状为(batch, seq, feature)否则为(seq, batch, feature)。dropout默认为0。若为非零值则在每个LSTM层的输出上引入dropout层dropout概率为设置的dropout值。bidirectional默认为False。若为True则为双向LSTM在CRNN网络中我们将该参数设置为True。 proj_size默认为0。若设置为非零值意味着使用映射大小的size关于proj_sizepytorch文档中有如下说明 对于输入序列中的每个元素每一层需要进行如下计算 其中
xt为t时刻的输入ht是t时刻的隐藏状态,ht-1为t-1时刻的隐藏状态ct为t时刻的元组状态cell stateit、ft、gt和ot分别为input gate、forget gate、cell gate、和output gateσ为sigmoid 函数⊙为Hadamard乘积矩阵点乘。 对于多层LSTM输入为上一层的隐含状态Pytorch文档中对此有较详细的说明 关于可学习模型参数的说明
weight_ih_l[k]第k层的input-hidden权重参数(W_ii|W_if|W_ig|W_io)k0时形状为(4*hidden_size, input_size) k0时若proj_size为0则权重参数形状为(4*hidden_size, num_directions * hidden_size)若proj_size0则权重参数形状为4*hidden_size, num_directions * proj_size)。weight_hh_l[k]第k层的hidden-hidden权重参数(W_hi|W_hf|W_hg|W_ho)。若proj_size0权重形状(4*hidden_size, hidden_size)若proj_size0则权重形状为(4*hidden_size, proj_size)。bias_ih_l[k]第k层的input-hidden偏置(b_hi|b_hf|b_hg|b_ho)形状为(4*hidden_size)。bias_hh_l[k]第k层的hidden-hidden偏置(b_hi|b_hf|b_hg|b_ho)形状为(4*hidden_size)。weight_hr_l[k]第k层的projection权重形状为(proj_size, hidden_size)该参数只有在proj_size0的时候存在。weight_ih_l[k]_reverseweight_ih_l[k]的反向权重只在bidirectionalTrue的时候存在。weight_hh_l[k]_reverseweight_hh_l[k]的反向权重只在bidirectionalTrue的时候存在。bias_ih_l[k]_reversebias_ih_l[k]的反向权重只在bidirectionalTrue的时候存在。bias_hh_l[k]_reversebias_hh_l[k]的反向权重只在bidirectionalTrue的时候存在。weight_hr_l[k]_reverseweight_hr_l[k]的反向权重只在bidirectionalTrue的时候存在。 参考资料LSTM — PyTorch 2.1 documentation