理解RNN以及模型搭建代码

RNN结构

这是一张不直观易懂的RNN结构示意图。但也是大家见得最多结构示意图。

RNN模型解释

RNN一文就讲解清楚的博客,看这里:https://zhuanlan.zhihu.com/p/408998328

RNN为什么梯度消失和梯度爆炸,看这里:https://zhuanlan.zhihu.com/p/564069442?utm_id=0

疑惑梳理

RNN模型是怎么构成的?

先别去想象那些时间传递的概念,现在你只知道单个单个的RNN神经元,我们用单个的RNN神经元排列成矩阵。
若矩阵3行50列,则可以想象为有三串RNN,每串 RNN神经元单元个数50个
这就是3层RNN,每层50个隐藏层的RNN结构。一般理解为存在一个隐藏单元就有一个RNN神经元单元

RNN层内有参数传递吗?层与层之间传递吗?

层就是指一串RNN神经元单元,且单个神经元之间没有传递关系。
层与层之间,层对应相同位置的神经元之间才会有会有传递关系。

RNN是如何发挥在时间线上的状态传递作用的?

RNN的传递作用是时间刻度上的,上面提到的结构,我们有3层RNN,每层50个隐藏层的RNN结构。
在训练时,每个单个RNN元素单元将当前的状态传递给下一个时间步同一位置的RNN神经元单元。在模型结构上,根本不存在RNN元素单元状态平行的传递给同一层其他结构的情况。
这里有个很重要的理解!!!很多博客都没讲清楚这一点。
同一层的RNN单个神经元是独立的神经元,没有传递关系。
RNN神经元的输入来自上一层,一个RNN神经元有两个输出,一个去了下一层,一个去了下一个状态。如图:

在上面图中,你将单个神经元位置的时间线放出来就是这个结构。是不是有种峰回路转,柳暗花明的感觉。

RNN,CNN神经元都是一个时间步对应输出一个不同的状态?他们有什么区别?

CNN的每个神经元元素状态只与当前输入有关,参数更新只与当前反向传播有关。
RNN的每个神经元元素状态不仅与当前输入有关还与这个元素之前的状态有关,参数更新也受之前状态和反向传播共同影响

50个隐藏层的RNN模型,如何训练60个数据长度的数据?

你忘了吗?
如下图,五个隐藏层训练了六个数据单元。

pytorch模型搭建

'''
模型搭建
'''
print("正在模型搭建 RnnModel--RNN(60, 50, 3) !!!")
class RnnModel(nn.Module):
    def __init__(self):
        super(RnnModel, self).__init__()
        '''
        参数解释:(输入维度,隐藏层维度,网络层数)
        '''
        self.rnn = nn.RNN(60, 50, 3, nonlinearity='tanh')
        self.linear = nn.Linear(50, 2)

    def forward(self, x):
        r_out, h_state = self.rnn(x)
        output = self.linear(r_out[:,-1,:])  # 将 RNN 层的输出 r_out 在最后一个时间步上的输出(隐藏状态)传递给线性层

        return output

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows搭建Web站点:免费内网穿透发布至公网

目录 什么是cpolar? 概述 1. 注册并安装cpolar内网穿透 2. 搭建一个静态Web站点 2.1 下载演示站点 2.2 本地运行演示站点 2.3 本地浏览测试站点是否正常 3. 本地站点发布公网可访问 3.1 登录cpolar web ui管理界面 3.2 启动website隧道 3.3 获取公网URL地…

AI:76-基于机器学习的智能城市交通管理

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

Power Automate-创建和运行

网站:Microsoft Power Automate 根据自己需求选择创建 选择需要的触发方式 点击添加新步骤 可以选择多种微软应用或者自定义应用连接 此处以向SharePoint列表追加项为例,要提前创建好SharePoint列表,并写好表结构 搜索SharePoint&#xff0…

【机器学习】给大家推荐几个资源

我写博客的目的就是让大家了解人工智能背后的数学原理,但人工智能这个话题太大了,背后涉及到的知识非常庞大,仅靠写几篇文章传播力度有限,况且知识传播过程中也容易引入误解,所以授之以鱼不如授之以渔,这里…

NIO 笔记(二)Netty框架专题

【笔记来自:it白马】 Netty框架 前面我们学习了Java为我们提供的NIO框架,提供使用NIO提供的三大组件,我们就可以编写更加高性能的客户端/服务端网络程序了,甚至还可以自行规定一种通信协议进行通信。 NIO框架存在的问题 但是之…

openfeign客户端A调用服务B,服务B抛出异常时,客户端A接收的几种情况

openfeign客户端A调用服务B,服务B抛出异常时,客户端A接收的几种情况 一、openfeign客户端调用远程服务时,远程服务抛出异常后,根据调用方法的返回类型的不同,会有不同的返回结果0 先看非openfeign调用的情况&#xff1…

在vue中如果头像为空时用姓名第一个字当头像

业务场景:当个人资料或者用户头像没有图片时&#xff0c;默认使用户名字中第一个汉字做头像。 效果图&#xff1a; 完整代码&#xff1a; <el-avatarsize"large" style"width: 45px; height: 45px; line-height: 45px; font-size: 24px"v-if"…

海淀区委网信办领导到中睿天下调研

近日&#xff0c;北京市海淀区委宣传部副部长&#xff0c;海淀区委网信办主任黄英、海淀区委网信办副主任陈魁一行到中睿天下北京总部调研&#xff0c;中睿天下副总经理李小琼、联合创始人魏海宇、国防营销中心总经理吕宗辉参加。 海淀区委网信办一行参观了中睿天下展厅&#x…

元核云亮相金博会,智能质检助力金融合规

11月初&#xff0c;第五届中新&#xff08;苏州&#xff09;数字金融应用博览会&#xff5c;2023金融科技大会在苏州国际博览中心举办&#xff0c;围绕金融科技发展热点领域及金融行业信息科技领域重点工作&#xff0c;分享优秀实践经验&#xff0c;探讨数字化转型路径与未来发…

基于IGT-DSER智能网关实现GE的PAC/PLC与罗克韦尔(AB)的PLC之间通讯

工业自动化领域的IGT-DSER智能网关模块支持GE、西门子、三菱、欧姆龙、AB等各种品牌的PLC之间通讯(相关资料下载)&#xff0c;同时也支持PLC与Modbus协议的工业机器人、智能仪表等设备通讯。网关有多个网口、串口&#xff0c;也可选择WIFI无线通讯。无需编程开发&#xff0c;只…

3线硬件SPI+DMA驱动 HX8347 TFT屏

3线硬件SPIDMA驱动 HX8347 TFT屏&#xff0c;实现用DMA清屏。 参考&#xff1a;基于stm32 标准库spi驱动st7789彩屏TFT(使用DMA)-技术天地-深圳市修德电子有限公司 一、源码 HX8347.h #ifndef USER_HX8347_H_ #define USER_HX8347_H_#define SPI_hardware #define SPI_hardw…

基于表面电势的AlGaN/GaN MODFET紧凑模型

标题&#xff1a;A Surface-Potential-Based Compact Model for AlGaN/GaN MODFETs 来源&#xff1a;IEEE TRANSACTIONS ON ELECTRON DEVICES&#xff08;11年&#xff09; 摘要 - 本文首次构建了基于表面势&#xff08;SP&#xff09;的AlGaN/GaN调制掺杂场效应晶体管&#…

说说地址栏输入 URL 敲下回车后发生了什么?

面试官&#xff1a;说说地址栏输入 URL 敲下回车后发生了什么? 一、简单分析 简单的分析&#xff0c;从输入 URL到回车后发生的行为如下&#xff1a; URL解析DNS 查询TCP 连接HTTP 请求响应请求页面渲染 二、详细分析 URL解析 首先判断你输入的是一个合法的 URL 还是一个…

C++初阶(九)内存管理

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、C/C内存分布1、选择题2、填空题3、sizeof 和 strlen 区别&#xff1f;4、总结 二、 C语言…

19.8 Boost Asio 异或加密传输

异或加密是一种对称加密算法&#xff0c;通常用于加密二进制数据。异或操作的本质是对两个二进制数字进行比较&#xff0c;如果它们相同则返回0&#xff0c;如果不同则返回1。异或加密使用一把密钥将明文与密文进行异或运算&#xff0c;从而产生密文。同时&#xff0c;使用相同…

数字马力笔试面试复盘

笔试——10月9日19&#xff1a;00 单选&#xff1a;30题 16.如何获取AJAX 请求的响应状态码? A通过AJAX对象的 statusCode 属性获取 B通过AJAX对象的responseText 属性获取C通过AJAX对象的status 属性获取 D通过AJAX对象的responseCode属性获取 答案&#xff1a;可以通过AJAX…

Python学习笔记--枚举类的使用

一、枚举类的使用 实际开发中&#xff0c;我们离不开定义常量&#xff0c;当我们需要定义常量时&#xff0c;其中一个办法是用大写变量通过整数来定义&#xff0c;例如月份&#xff1a; JAN 1 FEB 2 MAR 3 ... NOV 11 DEC 12当然这样做简单快捷&#xff0c;缺点是类型是…

paddleOcr训练一个属于自己的模型

自己配置开发环境的时候踩了不少坑&#xff0c;现在记录下来&#xff0c;以后需要了可以直接找到现成的代码&#xff0c;也希望能够帮到有需要的小伙伴 目录 &#xff08;一&#xff09;、运行环境搭建1、Anaconda部分Anaconda安装Anaconda创建虚拟环境指令Anaconda Prompt工作…

xilinx primitives(原语)

Xilinx的原语分为10类&#xff0c;包括&#xff1a;计算组件&#xff0c;IO端口组件&#xff0c;寄存器/锁存器&#xff0c;时钟组件&#xff0c;处理器组件&#xff0c;移位寄存器&#xff0c;配置和检测组件&#xff0c;RAM/ROM组件&#xff0c;Slice/CLB组件&#xff0c;G-t…

微信号绑定50个开发者小程序以后超额如何删除不用的

我们在开发微信小程序的时候&#xff0c;当前开发者工具登录的必须是该小程序的开发者才能进行小程序的开发&#xff0c;添加开发者的步骤是&#xff1a; 添加开发者 1、进入微信开放平台&#xff0c;然后扫码进入管理平台 2、找到下图所示位置 3:、输入要添加的微信账号&am…