PyTorch RNN的原理及其手写复现。

news2024/11/24 13:08:22

PyTorch RNN的原理及其手写复现。

    • 记忆单元(考虑过去的信息)分类包括:1.RNN 2.GRU 3.LSTM
    • 模型类别:1.单向循环(左到右) 2.双向循环(考虑未来信息) 3.多层单向或双向循环
    • 优缺点
    • 应用场景
    • 具体公式
  • 代码实现

记忆单元(考虑过去的信息)分类包括:1.RNN 2.GRU 3.LSTM

模型类别:1.单向循环(左到右) 2.双向循环(考虑未来信息) 3.多层单向或双向循环

请添加图片描述
在这里插入图片描述
既能看到过去又能看到未来。

优缺点

优点:

  1. 可以处理变长序列(权重在每一时刻共享)
  2. 模型大小与序列长度无关
  3. 计算量与序列长度呈线性增长
  4. 考虑历史信息(隐含层)
  5. 便于流式输出
  6. 权重时不变

缺点:
1.串行计算比较慢
2.无法获取太长的历史信息 (Transformer可以)

应用场景

  1. AI诗歌生成(one2many)
    请添加图片描述

  2. 文本情感分类(many2one)请添加图片描述

  3. 词法识别(many2many)
    请添加图片描述

  4. 机器翻译(many2many)seq2seq有编码器和解码器中间有attention帮助解码器
    请添加图片描述

  5. 语音识别/合成

  6. 语言模型

具体公式

在这里插入图片描述
可以看作是对输入 x t x_t xt和前一个隐含层的状态 h t − 1 h_{t-1} ht1的一个线性层。权重加偏置,然后就是一个非线性层tanh或者ReLU。

代码实现

RNN的手写算法在这个链接里面,包括调用api和自己写。
https://drive.google.com/file/d/1ph2dN92gnzYcAFxWrqEYY9vopznoldP4/view?usp=sharing
官方教程在:
https://pytorch.org/docs/stable/generated/torch.nn.RNN.html#torch.nn.RNN

主要参考自
https://www.bilibili.com/video/BV13i4y1R7jB/?spm_id_from=333.999.0.0&vd_source=5413f4289a5882463411525768a1ee27

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

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

相关文章

网络安全合规-数据安全评估

目前,我国在数据管理领域,已经正式出台的国家标准有《数据管理能力成熟度评估模型(GB/T 36073-2018)》(DCMM),在数据安全检测评估、认证领域的标准有《数据安全能力成熟度模型(GB/T …

实现取关和关注功能

将关注过的用户id存如数据库中 //关注或者取关 Override public Result follow(Long id, Boolean flag) { //1.获取当前登录用户的id UserDTO user UserHolder.getUser(); if(usernull){ return Result.fail("请先登录"); } Long userId user.getId(); //2.判断是关…

vue3+antDesignVue前端纯导出

效果 <a-buttonsize"default"style"margin-left: 10px"click"exportData">导出</a-button>1.下载所需依赖 npm install xlsx --save npm install file-saver --save<script setup> import { reactive, ref } from "vue…

SpringBoot——多环境开发

简单介绍&#xff1a; 在我们的开发过程中&#xff0c;我们的程序开发分为几个基本的阶段&#xff0c;比如开发阶段&#xff0c;调试阶段&#xff0c;运行阶段&#xff0c;在不同的阶段可能需要有不同的配置文件去对我们的项目做配置&#xff0c;那么要如何在不同的环境中配置…

C语言:数组定义方式

一、数组简介 <1>前言 大家首先来思考一个问题&#xff0c;若是我们想要定义两个变量&#xff0c;求这两个数的平均数&#xff0c;该怎么求呢&#xff1f; 例如&#xff1a;int a 10,b 20 int average (a b) / 2; 上面的公式&#xff0c;我相信大家应该很快就能够求出…

牛奶蛋白过敏VS乳糖不耐受,看完这篇终于分清了

乳糖不耐受 乳糖不耐症的主要表现为一些胃肠道症状&#xff0c;有腹部紧张、肠鸣、腹痛、排气和腹泻等症状。如出现这些症状都是乳糖不耐受症的表现之一&#xff0c;但患有乳糖不耐的个体症状差异很大&#xff0c;而严重的乳糖不耐受多于摄入一定量乳糖后30min至数小时内发生。…

Python安装教程2023(小白专用)已验证

第一次接触Python&#xff1f;下面从一个完全不懂的Python 的小白来安装Python 等一系列工作的记录&#xff0c;并且遇到的问题也会写出&#xff0c;让完全不懂的小白也可上手安装&#xff0c;并且完成第一个Hello world代码。 [Python 安装] 目前&#xff0c;Python有两个版本…

【手机建站】Android Termux+cpolar内网穿透,搭建外网可以访问的网站

文章目录 概述1.搭建apache2.安装cpolar内网穿透3.公网访问配置4.固定公网地址5.添加站点 概述 Termux是一个Android终端仿真应用程序&#xff0c;用于在 Android 手机上搭建一个完整的Linux 环境&#xff0c;能够实现Linux下的许多基本操作&#xff0c;不需要root权限Termux就…

Word怎么转换成PDF免费?分享适合你的Word转PDF方法

随着数字化时代的到来&#xff0c;将文件转换为PDF格式已经成为一个常见的需求。PDF文件格式的广泛应用使其在各个领域都非常重要&#xff0c;而Word文档则是最常见的文件类型之一。因此&#xff0c;将Word转换为PDF的方法备受关注。在下面&#xff0c;我将分享一种适合任何人使…

基于ARIMA-CNN-LSTM预测模型研究(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

大数据服务之linux中安装hadoop

安装hadoop之前&#xff0c;必须要先有jdk。所以jdk 在linux环境中配置java全局变量 第一步&#xff0c;下载 下载地址&#xff1a;Index of /dist/hadoop/common/hadoop-3.1.3 第二步&#xff0c;解压 tar -zxvf hadoop-3.1.3.tar.gz 第三步&#xff0c;获取文件路径 pw…

站的更高一点看分布式系统中的复制

复制意味着在通过网络连接的多台机器上保留相同数据的副本。 我们希望能复制数据&#xff0c;可能出于各种各样的原因&#xff1a; 使得数据与用户在地理上接近&#xff08;从而减少延迟&#xff09;即使系统的一部分出现故障&#xff0c;系统也能继续工作&#xff08;从而提…

网络带宽管理

网络某一部分的带宽使用过多&#xff0c;可能会影响整个网络的性能&#xff0c;带宽问题甚至会影响业务关键型服务并导致网络停机。在企业中保持稳定的网络性能可能具有挑战性&#xff0c;因为采用数字化的网络可扩展性和敏捷性应该与组织的发展同步。随着基础设施的扩展、新应…

flask+p5.js 网页开发 pycharm mac环境

flask 学习参考视频&#xff1a; 2023版-零基础玩转Python Flask框架-学完可就业 一、安装 需要安装的&#xff1a; python、flask、pycharm mysql、Navicat&#xff08;这两个不用数据库可以不用安装&#xff09; 1、python3.0以上安装 下载地址 下载以后终端输入python3 …

Vue入门学习笔记(1)

这里写目录标题 一、安装工具二、前置设置2.1 淘宝加速2.2、华为云加速 三、安装vue工具3.1 安装vue/cli3.2 安装vite 四、创建项目4.1 使用vue/cli创建4.2 使用vite创建 一、安装工具 首先须安装以下工具&#xff1a; vscode&#xff08;如果下载慢的话建议使用360安装&…

select

1. select模型 2. select()函数 int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);fd_set类型 readfds和writefds, exceptfds的类型都是fd_set,那么fd_set类型是什么呢&#xff1f; fd_set类型本质是一个位图&#xff0…

Word怎么生成目录?4个方法快速生成目录!

案例&#xff1a;Word怎么生成目录 【想问下大家在使用Word时是怎么生成目录的呀&#xff1f;正在写毕业论文的我真的很急&#xff01;感谢&#xff01;】 Word作为我们常用的办公软件&#xff0c;为我们的提供了很多便利。生成目录是在Word文档中创建一个方便导航的索引。 …

Go语言基于Viper封装实现

基于Viper的封装 Viper是什么 Viper是一个用于Go语言应用程序的配置管理库。它提供了一种简单而灵活的方式来处理应用程序的配置&#xff0c;支持多种格式的配置文件&#xff0c;并提供了一组API来读取和使用这些配置。 Viper支持多种配置文件格式&#xff0c;包括JSON、TOML、…

C learning_14 指针篇之破解版

目录 1. 指针是什么 指针变量 2. 指针和指针类型 那指针类型的意义是什么&#xff1f; 3. 野指针 规避野指针 4. 指针运算 指针-整数 指针-指针 指针的关系运算(比较指针的大小) 5. 指针和数组 6. 二级指针 7. 指针数组 1. 指针是什么 指针是C语言中一种非常重要的…

2023年美国大学生数学建模竞赛E题光污染解题全过程文档及程序

2023年美国大学生数学建模竞赛 E题 光污染 原题再现&#xff1a; 背景   光污染被用来描述任何过度或不良地使用人造光。我们所说的一些光污染现象包括光侵入、过度照明和光杂波。在大城市&#xff0c;这些现象最容易被观测到的是太阳落山后天空中的一道辉光; 然而&#xf…