4.7.深层循环神经网络

深层循环网络

​ 就是更深了,因为之前的网络都只有一层隐藏层,弄多一点

在这里插入图片描述

​ 我们将多层循环神经网络堆叠在一起,通过对几个简单层的组合,产生了一个灵活的机制。上图展示了一个具有 L L L个隐藏层的深度循环神经网络,每个隐状态都连续地传递到当前层的下一个时间步和下一层的当前步。

1.函数依赖关系

​ 假设在时间步 t t t有一个小批量的输入数据 X t ∈ R n × d X_t\in \R^{n\times d} XtRn×d(样本数:n,每个样本中的输入数:d),同时,将第 l l l个隐藏层( l = 1 , ⋯   , L l=1,\cdots,L l=1,,L)的隐状态设为KaTeX parse error: Expected group as argument to '\H' at position 3: \H_̲t^{(l)}\in \R^{…(隐藏单元数:h),输出层变量设为 O t ∈ R n × q O_t\in \R^{n\times q} OtRn×q(输出数: q q q),设置 H t ( 0 ) = X t H^{(0)}_t = X_t Ht(0)=Xt,第 l l l个隐藏层的隐状态使用激活函数 ϕ t \phi_t ϕt,则:
H t ( l ) = ϕ ( H t ( l − 1 ) W x h ( l ) + H t − 1 ( l ) W h h ( l ) + b h ( l ) ) H_t^{(l)}=\phi(H_t^{(l-1)}W_{xh}^{(l)}+H_{t-1}^{(l)}W_{hh}^{(l)}+b_h^{(l)}) Ht(l)=ϕ(Ht(l1)Wxh(l)+Ht1(l)Whh(l)+bh(l))
​ 其中权重 W x h ∈ R h × q , W h h ( l ) ∈ R h × h W_{xh}\in \R^{h\times q},W_{hh}^{(l)}\in R^{h\times h} WxhRh×q,Whh(l)Rh×h和偏置 b h ∈ R 1 × h b_h\in \R ^{1\times h} bhR1×h都是第l个隐藏层的模型参数。

​ 最后,输出层的计算仅基于第 l l l个隐藏层的最终的隐状态:
O t = H t ( L ) W h q + b q O_t = H_t^{(L)} W_{hq} +b_q Ot=Ht(L)Whq+bq
​ 其中,权重 W h q ∈ R h × q W_{hq}\in \R ^{h\times q} WhqRh×q和偏置 b q ∈ R 1 × q b_q \in \R ^{1\times q} bqR1×q都是输出层的模型参数

​ 使用多个隐藏层来获得更多的非线性性。

2.代码实现

import torch
from torch import nn
from d2l import torch as d2l

batch_size, num_steps = 32, 35
train_iter, vocab = d2l.load_data_time_machine(batch_size, num_steps)


vocab_size, num_hiddens, num_layers = len(vocab), 256, 2
num_inputs = vocab_size
device = d2l.try_gpu()
# num_layers 的值来设定隐藏层数
lstm_layer = nn.LSTM(num_inputs, num_hiddens, num_layers)
model = d2l.RNNModel(lstm_layer, len(vocab))
model = model.to(device)

num_epochs, lr = 500, 2
d2l.train_ch8(model, train_iter, vocab, lr*1.0, num_epochs, device)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值