现代循环神经网络 - 深度循环神经网络

深度循环神经网络

1 - 函数依赖关系


2 - 简洁实现

实现多层循环神经网络所需的许多逻辑细节再高级API中都是现成的,简单起见,我们仅示范使用此类内置函数的实现方式

以⻓短期记忆⽹络模型为例,该代码与之前在 9.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,隐藏单元数量数量仍是256,唯一的区别就是,我们现在通过num_layers的值来设定隐藏层数

vocab_size,num_hiddens,num_layers = len(vocab),256,2
num_inputs = vocab_size
device = d2l.try_gpu()
lstm_layer = nn.LSTM(num_inputs,num_hiddens,num_layers)
model = d2l.RNNModel(lstm_layer,len(vocab))
model = model.to(device)

3 - 训练与预测

由于使用了长短期记忆网络模型来实例化两个层,因此训练速度大大被降低

num_epochs,lr = 500,2
d2l.train_ch8(model,train_iter,vocab,lr,num_epochs,device)
perplexity 1.0, 249717.4 tokens/sec on cuda:0
time traveller with a slight accession ofcheerfulness really thi
travelleryou can show black is white by argument said filby

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-enJ8b1Su-1662903615036)(https://yingziimage.oss-cn-beijing.aliyuncs.com/img/202209112130562.svg)]

4 - 小结

  • 在深度循环神经网络中,隐状态的信息被传递到当前层的下一时间步和下一层的当前时间步
  • 有许多不同⻛格的深度循环神经⽹络,如⻓短期记忆⽹络、⻔控循环单元、或经典循环神经⽹络。这些模型在深度学习框架的⾼级API中都有涵盖
  • 总体⽽⾔,深度循环神经⽹络需要⼤量的调参(如学习率和修剪)来确保合适的收敛,模型的初始化也需要谨慎
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值