本文重点

前面我们学习了使用pytorch搭建RNN,本文我们学习如何使用pytorch搭建LSTM和GRU模型,我们来看一下,它们两个和LSTM和GRU有什么不同。

搭建LSTM

我们可以看到模型的搭建和RNN没什么区别,关键在于它的前向传播的返回值,out和hn和RNN表示的含义一样,多了一个cn,cn和hn的维度一样的都是[层数*方向,batch,hidden-size]

除此之外,LSTM和RNN的区别还体现在参数维度上,LSTM的参数维度是RNN的四倍,可以理解为wxh的维度为(hidden_len*4,feature_len)

out表示最上层每个时刻的输出,如果要是获取最后一个时刻可以[-1,::]

Cn表示最后一个时刻的长期状态(所有层),有两层的话,那么中间层也会获取到

hn表示最后一个时刻的隐藏状态(所有层)

搭建GRU

hidden的维度是[层数*方向,batch,hidden-size]

除此之外,GRU和RNN的区别还体现在参数维度上,GRU的参数维度是RNN的四倍,可以理解为wxh的维度为(hidden_len*4,feature_len)

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐