基于深度学习框架pytorch构造深度学习循环神经网络模型RNN和LSTM

深度学习框架pytorch

当我们开始尝试做一个深度学习项目之前,选择一个合适的框架是非常重要的,因为选择一个合适的框架能起到事半功倍的作用,每个深度学习研究者不需要写大量的重复代码,它能够提高我们的开发效率和速度。有许多优秀的深度学习框架,比如Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch。
在这里插入图片描述

深度学习框架——pytorch

pytorch深度学习框架,相对其它框架来说,它更加灵活,支持动态图,而且提供了Python接口。它是一个以Python优先的深度学习框架,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这是其它深度学习框架所不支持的。

循环神经网络——RNN

我们知道神经网络的灵感来源于人类的大脑,对于我们人类而言,我们在以前经历的事情会在大脑中留下深刻的印象,这样我们往往能够重拾记忆。而循环神经网络的出现让人们看到了希望,它在序列问题,以及自然语言理解等领域取得了巨大的成功。

循环神经网络的提出便是基于记忆模型的想法,期望循环神经网络能够记住前面出现的特征,并且能够依据前面的特征推断后面的结果,而且整体的网络不断循环,所以它叫做循环神经网络。

循环神经网络的基本结构很简单,它就是将网络的输出保存到一个记忆单元中,这个记忆单元和下一次的输入一起进入神经网络中,它的结构如下所示:

在这里插入图片描述

这是最基本的循环神经网络RNN,我们可以看到网络输入的时候会联合记忆单元一起作为输入,网络不仅输出结果,还会将结果保存到记忆单元中。

虽然这样的RNN神经网络结构能够记忆之前的情景,但是它和人一样,记忆力并不是无限的,它也存在遗忘性,所以网络往往不能记忆很长时间的信息,而且随着时间跨度越来越大,RNN也越来越难以学习这些信息。

循环神经网络——LSTM

后来在RNN基础上设计了新的循环神经网络LSTM,这个新的循环神经网络LSTM不仅能够解决短时记忆的问题,而且能够在一定的程度上解决长时间依赖的问题。

在这里插入图片描述

LSTM和RNN一样都是链式循环结构,它由三个门来控制,分别为输入门、遗忘门、输出门。其中最主要的就是遗忘门,它决定了之前的哪些记忆被保留,而哪些记忆被去掉,遗忘门使得LSTM具有了长时记忆的功能。

基于pytorch构建LSTM

import torch
from torch.autograd import Variable
from torch import nn
lstm_seq = nn.LSTM(50, 100, num_layers=2)
h_init = Variable(torch.randn(2, 3, 100))
c_init = Variable(torch.randn(2, 3, 100))
out, (h, c) = lstm_seq(lstm_input, (h_init, c_init))

如上所示我们只使用了几行代码就构建了具有两层的循环神经网络LSTM,这就是框架的优势所在,其中这个循环神经网络输入层的维度是50,而输出层的维度是100。

深度学习框架的出现降低了入门的门槛,我们不需要从复杂的神经网络开始编代码,可以根据需要选择已有的模型,通过训练得到模型参数,这就是深度学习框架的优势所在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幻风_huanfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值