循环神经网络——下篇【深度学习】【PyTorch】【d2l】

news2025/1/8 12:00:41

文章目录

  • 6、循环神经网络
    • 6.7、深度循环神经网络
      • 6.7.1、理论部分
      • 6.7.2、代码实现
    • 6.8、双向循环神经网络
      • 6.8.1、理论部分
      • 6.8.2、代码实现
    • 6.9、机器翻译
      • 6.9.1、理论部分
    • 6.10、编码器解码器架构
      • 6.10.1、理论部分

6、循环神经网络

6.7、深度循环神经网络

6.7.1、理论部分

设计多个隐藏层,目的是为了获取更多的非线性性。深度循环神经网络需要大量的调参(如学习率和修剪) 来确保合适的收敛,模型的初始化也需要谨慎。

在这里插入图片描述

6.7.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()
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)

在这里插入图片描述

6.8、双向循环神经网络

6.8.1、理论部分

适合抽取特征,填空,如:填充缺失的单词、词元注释。

并不适合预测未来,它需要上下文,下文(未来)未知逻辑上讲不通的一个结构。

原理图

在这里插入图片描述

前向隐状态

H t → = Φ ( X t W x h ( f ) + H t − 1 → w h h ( f ) + b h ( f ) ) H^→_t = Φ(X_tW_{xh}^{(f)}+H_{t-1}^→w_{hh}^{(f)}+b_{h}^{(f)}) Ht=Φ(XtWxh(f)+Ht1whh(f)+bh(f))

反向隐状态

H t ← = Φ ( X t W x h ( b ) + H t + 1 ← w h h ( b ) + b h ( b ) ) H_t^← = Φ(X_tW_{xh}^{(b)}+H_{t+1}^←w_{hh}^{(b)}+b_h^{(b)}) Ht=Φ(XtWxh(b)+Ht+1whh(b)+bh(b))

隐状态

两者连接后,得到 H t H_t Ht

输出

O t = H t W h q + b q O_t= H_tW_{hq} +b_q Ot=HtWhq+bq

6.8.2、代码实现

双向循环神经网络的错误应用

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

# 加载数据
batch_size, num_steps, device = 32, 35, d2l.try_gpu()
train_iter, vocab = d2l.load_data_time_machine(batch_size, num_steps)
# 通过设置“bidirective=True”来定义双向LSTM模型
vocab_size, num_hiddens, num_layers = len(vocab), 256, 2
num_inputs = vocab_size
lstm_layer = nn.LSTM(num_inputs, num_hiddens, num_layers, bidirectional=True)
model = d2l.RNNModel(lstm_layer, len(vocab))
model = model.to(device)
# 训练模型
num_epochs, lr = 500, 1
d2l.train_ch8(model, train_iter, vocab, lr, num_epochs, device)

在这里插入图片描述

不能盲目地将这一语言模型应用于任何预测任务。 尽管模型产出的困惑度是合理的, 该模型预测未来词元的能力却可能存在严重缺陷。

6.9、机器翻译

6.9.1、理论部分

将序列从一种语言自动翻译成另一种语言。

神经网络机器翻译方法,强调的是端到端的学习。机器翻译的数据集是由源语言和目标语言的文本序列对组成的。

(待补充。。。)

6.10、编码器解码器架构

6.10.1、理论部分

在这里插入图片描述

这个架构常用于编码器-解码器架构是一种常用于序列到序列(Seq2Seq)任务的深度学习架构。序列到序列的问题举例:NLP问题(机器翻译、问答系统和文本摘要)。

编码器(Encoder)

将输入形式编码成中间表达形式。

中间表示被称为“编码”或“特征”。

解码器(Decoder)

将中间表示解码成输出形式。

也会有额外的输入。为啥?

输入一些额外的信息来帮助解码器生成正确的输出序列。这些额外的信息可以是一些上下文信息,例如输入序列的长度、标点符号和语法结构等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1030871.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

瑞慈医疗:H1体检业务同比上涨101.2%,因何领跑医疗健康行业?

悄然间,医疗健康行业碰上历史性变革。水面之上,医院体检医院体检人潮涌动,愈来愈多的医院迈上扩建体检中心的步伐,赛道激增 20%为所有科室之首。水面之下,依靠信息技术使体检数字化、智能化的转型浪潮,也在…

TypeError: res.data.map is not a function微信小程序报错

从数据库查: 调用的是: 访问的springboot后端是这个: 打印出来如下: 看到是json格式的数据 [Users [id3, name刘雨昕, phone18094637788, admintrue, actionsJsonadmin, createAtSat Sep 16 10:11:20 CST 2023, tokentest], User…

小节9:Python之numpy

numpy全称为Numerical Python,是很多数据或科学相关Python包的基础。 1、numpy数组(ND array N维数组) numpy数组是更适合数据分析的列表。 numpy的数组和Python的内置列表有相似之处,也有不同之处。 相似之处:我们…

面向对象进阶

文章目录 面向对象进阶一.static1.静态变量2.静态方法3.static的注意事项 二.继承1.概述2.特点3.子类可以继承父类中的内容4.继承中成员变量的访问特点5.继承中成员方法的访问特点6.继承中构造方法的访问特点7.this和super使用总结 三.多态1.认识多态2.多态中调用成员的特点3.多…

简单的手机电脑无线传输方案@固定android生成ftp的IP地址(android@windows)

文章目录 abstractwindows浏览android文件环境准备客户端软件无线网络链接步骤其他方法 手机浏览电脑文件公网局域网everythingpython http.server 高级:固定android设备IP准备检查模块是否生效 windows 访问ftp服务器快捷方式命令行方式双击启动方式普通快捷方式映射新的网络位…

27.基于ADS的不等分威尔金森功分器设计

27.基于ADS的不等分威尔金森功分器设计 等分的威尔金森功分器可以使用ADS非常快速的设计出来,但是不等分的功分器却没有便捷的设计方法,在此给出快速的设计方法与案例,方便大家实际设计。 本次的工程链接: https://download.csdn…

Apache Beam 2.50.0发布,该版本包括改进功能和新功能

导读我们很高兴向您介绍 Beam 的新版本 2.50.0。该版本包括改进功能和新功能。请查看此版本的下载页面。 亮点 Spark 3.2.2 被用作 Spark 运行程序的默认版本(#23804)。Go SDK 新增默认本地运行程序,名为 Prism(#24789&#xff0…

【SpringCloud微服务全家桶学习笔记-服务调用Ribbon/openFeign】

SpringCloud微服务全家桶学习笔记 内容:SpringCloud SpringCloud alibaba 技术栈:Java8mavengit,githubNginxRabbitMQSpringBoot2.0 仓库:链接 服务调用Ribbon 是什么? Ribbon是Netflix发布的开源项目&#xff…

WEB使用VUE3实现地图导航跳转

我们在用手机查看网页时可以通过传入经纬度去设置目的地然后跳转到对应的地图导航软件,如果没有下载软件则会跳转到下载界面 注意: 高德地图是一定会跳转到一个新网页然后去询问用户是否需要打开软件百度和腾讯地图是直接调用软件的这个方法有缺陷&…

Excel打开后关闭就马上跳出 Visual c++ Runtime Error R6025

环境: Win10 专业版 Excel 2016 绿盾加密环境 问题描述: Excel打开后关闭就马上跳出 visual c runtime error R6025 runtime error! program:c:\program files\microsoft office\office14\excle.exe r6025 -pure virtual function call 解决方案…

电脑如何录屏?推荐3个方法

随着电脑技术的不断发展,屏幕录制成为了一项重要的技能,无论是为了制作教育教程、分享游戏成就,还是记录计算机上的重要操作。电脑录屏能够让您捕捉屏幕上的所有活动,这对于培训、演示和内容创作非常有用。在本文中,我…

JAXB(Java Architecture for XML Binding)下载、使用

简介 JAXB(Java Architecture for XML Binding)就是XML数据绑定的java架构。JAXB可以根据XML Schema生成java类,也能根据java类生成XML Schema,XML数据绑定指定了XML请求和XML响应如何映射成java对象。 JAXB提供了API和工具&…

有了Spring为什么还需要SpringBoot呢

目录 一、Spring缺点分析 二、什么是Spring Boot 三、Spring Boot的核心功能 3.1 起步依赖 3.2 自动装配 一、Spring缺点分析 1. 配置文件和依赖太多了!!! spring是一个非常优秀的轻量级框架,以IOC(控制反转&…

WPF中DataGrid控件绑定数据源

步骤 创建数据源:首先,我们需要创建一个数据源,可以是一个集合(如List、ObservableCollection等),也可以是一个DataTable对象。数据源中的每个元素代表一行数据。 设置DataGrid的ItemsSource属性&#xff…

el-select的某一项选中后显示id

环境: vue3element-plus 今天在使用elementui的下拉组件的时候发现有一个选项在选中后显示的是id.找了会没看到问题,后来想到会不会是没有设置key的原因(之前看到说vue3可以不用设置key),果然加上key就可以了

电容笔哪个厂家的产品比较好?开学季值得买电容笔

现在,几乎每个人都有一个ipad平板,可以帮助你解决很多工作和学习上的难题,比如工作时的整理文档,做一些简单的PPT,以及在学习上记录笔记等等。所以,用一支好用的电容笔来搭配iPad是非常重要的。在这里&…

【2023华为杯A题】WLAN网络信道接入机制建模(代码、思路.....)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

sed的不同执行方式

1. 命令行执行多条sed命令 1.1 命令行通过多条-e选项 sed -e command1 -e command2 -e command3 匹配root或nobody,或mail: sed -n -e /^root/ p -e /^nobody/ p -e /^mail/p /etc/passwd 1.2 用\换行 Shell的换行符依然有效,这有利于…

【vue】vue+easyPlayer 实现宫格布局及视频播放

由于业务需要,ant-design-vue框架集成easyPlayer.js作为视频播放器。EasyPlayer.js H5播放器,是一款能够同时支持HTTP、HTTP-FLV、HLS(m3u8)、WS视频直播与视频点播等多种协议,支持H.264、H.265、AAC等多种音视频编码格…

在线安装qt5.15之后任意版本

下载qt现在安装包: window安装包链接 进入cmd,用命令行打开安装包,并指定组件下载地址(这个是关键,之前用的是腾讯镜像,出现了版本灰色无法选中问题) .\qt-unified-windows-x64-4.6.1-online…