PyTorch深度学习实践笔记#7 | 循环神经网络(基础篇)
嗨,我是error。
我来记录PyTorch深度学习实践的笔记了,这会是一个系列,后面会慢慢更新。个人之前都是使用tensorflow进行深度学习实践,这是第一次学习Pytorch,若笔记有误欢迎提出纠正!课件采用自B站"刘二大人"老师的视频【传送门】
其实本质上来讲RNN也是线性计算与非线性计算,只不过是各种计算的独特组合方式而已,通过巧妙的结构设计来获取传统计算不能获取的数据之间相关联信息的反馈。同时,基于参数共享的思想,使得RNN在拥有较复杂的结构下也能保持相对小的参数量。
如下图所示是RNN的一个十分基础的模型,虽然看上去由很多RNN块组成,但实际上因为每一个RNN块内部的参数都是一样的,所以就可以简化为左边的循环模型,实际上在pytorch中RNN时也是通过for循环来实现的。
下图是一个很基础的RNN内部图展示,可以看出其本质还是我们之前学过的计算方法
下图为pytorch中RNNCell的参数,只需输入inputsize和hiddensize即可,而在调用的时候我们是一个一个batch传进去数据的。
下面是一个实例来讲解,其实在构建神经网络中最重要的莫过于维度的匹配,在RNN中亦是如此