RNN 和 Transformer 复杂度比较

这里假设BatchSize为 1,就是单样本的情况。

原始 RNN 块:

(1)单步计算 H,包含两个矩阵向量乘法,和一个激活,复杂度HidSize²

(2)一共有SeqLen步,所以整体复杂度SeqLen * HidSize²

LSTM 块:

(1)单步计算 F I C_hat O,包含八个矩阵向量乘法,和四个激活:HidSize²

(2)单步计算 C,包含两个逐元素乘法,和一个加法;HidSize²

(3)单步计算 H,包含一个逐元素乘法和一个激活;HidSize²

(4)一共有SeqLen步,所以整体复杂度SeqLen * HidSize²

TF 块:

(1)计算 QKV,包含三个矩阵乘法,SeqLen * HidSize²

(2)计算注意力矩阵,包含 HeadCount 个 矩阵乘法,HeadCount * HeadSize * SeqLen²

由于HidSize = HeadCount * HeadSize,实际上是HidSize * SeqLen²

(3)Softmax 激活,HeadCount * SeqLen² << HidSize * SeqLen²

(4)计算 O,包含HeadCount个矩阵乘法,HeadCount * HeadSize * SeqLen² = HidSize * SeqLen²

(5)计算输出向量,包含一个矩阵乘法SeqLen * HidSize²

(6)FFN ,两个矩阵乘法,SeqLen * HidSize²

(6)整体复杂度,SeqLen * HidSize² + HidSize * SeqLen²

HidSize是每层之间传输的嵌入向量的维度,大概几百维。

聊天的时候SeqLen大概几十到一百,明显低于HidSize,这个时候二者是差不多的。

长文本翻译的时候SeqLen是几千,那么 RNN 明显比 Transformer 快。

等于说,Transformer 的高复杂度缺点被并行掩盖了。在单机单卡这种不能并行的环境,效率远不如 RNN。这就是很多人一定要搞线性注意力的原因。

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

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

相关文章

12. SSM整合

1.新建一个maven项目,添加web支持 创建项目 设定项目名 右键添加框架支持: 添加web应用支持: 完成后目录结构: 2.添加jar包依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0…

12. C++ kmalloc、kzalloc、vmalloc的区别

kmalloc、kzalloc、vmalloc的区别 我们都知道在用户空间动态申请内存用的函数是 malloc()&#xff0c;这个函数在各种操作系统上的使用是一致的&#xff0c;对应的用户空间内存释放函数是 free()。注意&#xff1a;动态申请的内存使用完后必须要释放&#xff0c;否则会造成内存…

RealSense Depth Cameras with ROS1 安装和启动教程

首先进入下面的网址&#xff1a; https://dev.intelrealsense.com/docs/ros1-wrapper 进入该链接后&#xff0c;点击最右边的“忍者神龟” 继续点进去 继续点进去后&#xff0c;终于来到了下载安装教程页面&#xff1a; 下面开始命令行代码的搬运&#xff1a; 一、ROS安装&am…

JavaScript高级程序设计读书记录(九):继承

1. 继承 继承是面向对象编程中讨论最多的话题。很多面向对象语言都支持两种继承&#xff1a;接口继承和实现继承。前者只继承方法签名&#xff0c;后者继承实际的方法。接口继承在 ECMAScript 中是不可能的&#xff0c;因为函数没有签名。实现继承是 ECMAScript 唯一支持的继承…

基于ssm的一家运动鞋店的产品推广网站的设计论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本一家运动鞋店就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

【Python】内置的type()函数详解和示例

在Python中&#xff0c;type()函数是一个内置函数&#xff0c;用于获取对象的类型。这个函数返回一个对象的类型对象&#xff0c;可以用来比较和识别对象的类型。 # 获取一个整数的类型 print(type(123)) # 输出&#xff1a;<class int># 获取一个字符串的类型 print(t…

MySQL 基于 GTID 主从复制

GTID 定义 GTID 是 MySQL 事务标识&#xff0c;为每一个提交的事务都生成一个标识&#xff0c;并且是全局唯一的&#xff0c;这个特性是从 MySQL5.6 引进的。 组成 GTID 是由 UUID TID&#xff0c;UUID 是MySQL的唯一标识&#xff0c;每个MySQL实例之间都是不同的。TID是代表…

【RocketMQ每日一问】RocketMQ重平衡逻辑是怎么样的?

消费者启动时&#xff0c;订阅相应的topic并加入到消费者组。消费者将消费进度信息存储到Broker中&#xff0c;包括当前消费到的消息的offset、队列信息等。消费者定时从Broker中获取topic的路由信息&#xff08;包括消息队列、broker信息等&#xff09;&#xff0c;并更新本地…

地表温度计算(二)--Landsat8 Collection2 level2数据集

目录 一、GEE Landsat8 Collection2 level2数据集二、操作步骤1.导入研究区矢量2.计算LST3.导出数据4.导入Arcgis查看三、总结之前做了一个劈窗算法反演,不过该反演在干旱区适用,在其他区域效果不佳。然后又尝试了一些单窗算法、ENVI中热辐射传输方法,但是这些方法都需要获取…

Linux内存管理:(七)页面回收机制

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 1. 触发页面回收 Linux内核中触发页…

Linq练习

准备类以及数据 class Student {public int StudentId { get; set; }public string Name { get; set; }public Course Course { get; set; }public Student(int studentId, string name, Course course){StudentId studentId;Name name;Course course;}public void PrintIn…

深入MySQL——10

查询为何如此之慢 分为两种情况一种是查询后长时间不返回的&#xff0c;还有一种是查询很慢的 我们先来说第一种情况 长时间不返回 这种情况下就是锁阻塞导致不能返回&#xff0c;可以通过show processlist来查看语句处于什么状态&#xff0c;一般情况下会出现这几种状态&a…

Vue3:vue-cli项目创建及vue.config.js配置

一、node.js检测或安装&#xff1a; node -v node.js官方 二、vue-cli安装&#xff1a; npm install -g vue/cli # OR yarn global add vue/cli/*如果安装的时候报错&#xff0c;可以尝试一下方法 删除C:\Users**\AppData\Roaming下的npm和npm-cache文件夹 删除项目下的node…

从传统部署到无服务器计算:AI应用在AWS平台上的革新与飞跃

文章目录 《快速构建AI应用–AWS无服务器AI应用实战》内容简介作者简介目录 随着人工智能技术的不断发展&#xff0c;越来越多的企业开始将人工智能应用于各个业务场景&#xff0c;以提高效率、降低成本并创造新的商业模式。然而&#xff0c;传统的人工智能解决方案往往需要大量…

从零开始C++精讲:第一篇——C++入门

文章目录 前言一、C关键字二、命名空间2.1引子2.2命名空间定义2.3命名空间的使用 三、C输入和输出3.1输出3.2输入 四、缺省参数4.1全缺省4.2半缺省 五、函数重载5.1重载概念 六、引用6.1定义6.2引用的使用示例6.2.1引用作参数6.2.1引用作返回值 6.3传值、传引用效率比较6.4常引…

超维空间M1无人机使用说明书——01、ROS机载电脑使用说明——远程连接

引言&#xff1a;远程连接通常采用两种方式&#xff0c;一种是通过可视化软件&#xff0c;如VNC、Nomachine等&#xff0c;另外一种是使用SSH。各有优缺点&#xff0c;两种远程登录方式的优缺点做一个简单的对比&#xff1a; 1、SSH优缺点 优点:1、消耗网络资源 2、运行稳定 …

前端面试题集合六(高频)

1、vue实现双向数据绑定原理是什么&#xff1f; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>…

java SSM问卷调查系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM问卷调查管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代 码和数据库&#xff0c;系统主要采…

每天刷两道题——第十一天

1.1滑动窗口最大值 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值 。 输入&#xff1a;nums [1,3,-1,-3,5,3,6,7], k 3 输出&…

面试宝典之微服务框架面试题

S1、集群与分布式有啥区别&#xff1f; &#xff08;1&#xff09;相同点&#xff1a; 分布式和集群都是需要有很多节点服务器通过网络协同工作完成整体的任务目标。 &#xff08;2&#xff09;不同点&#xff1a; 分布式是指将业务系统进行拆分&#xff0c;即分布式的每一个…