简单理解TransFormer
背景:听了李宏毅老师关于transformer的讲解,觉得有必要记录一下,里面的PPT都是李宏毅老师的内容(不喜勿喷)
1.self-attention
在介绍transformer之前,必须先了解self-attention
(1) 先将X输入Embedding(a = Wx), 然后a乘相关的权重,生成QKV
![](/assets/blank.gif)
(2) q1*k1、q1*k2...,将q1*k1、q1*k2...通过soft-max,然后将通过soft-max的数值与V相乘,最后将相乘的结果相加生成b1、b2...
![](/assets/blank.gif)
(3) 根据(1)和(2)就是self-attention的操作(这样说还是挺清楚的,公式也不复杂)
![](/assets/blank.gif)
2.并行计算
(1) 矩阵的计算还是挺清楚的(QKV的计算)
![](/assets/blank.gif)
(2) 计算b(softmax(K*Q)*V最后相加)
![](/assets/blank.gif)
(3) 简化的就是这样,大块的清清楚楚!!!
![](/assets/blank.gif)
3.多头注意力机制
(1) 多个QKV
![](/assets/blank.gif)
4.TransFormer
![](/assets/blank.gif)
5.注意点
关于这个图,理解的理解,不理解的还是不理解
从vit的onnx结构图来看transformer的输入
![](/assets/blank.gif)
3*224*224经过768个16*16的卷积,输出768*14*14
将输出flatten,768*196(14*14)
调整通道196*768
添加class_num(分类信息)1*768,拼接196*768成197*768
添加位置信息pos,add(shape还是197*768)
![](/assets/blank.gif)
关于outputs的解释
![](/assets/blank.gif)
我的理解就是encoder的输出,如下图所示
encoder从BOS(一个特殊的字符)开始,输出潮水
decoder从BOS+潮水作为encoder的outputs,但是是decoder的inputs
重复几遍,知道潮水退了结束
![](/assets/blank.gif)
3.VIT的onnx结构图
看看里面的结构,都是一些block的堆叠,也没有新的OP,我的感觉是transformer还是做的和CNN的工作是类似的,但是transformer的并行效果更好,同时这些计算密集型的OP,后续的性能优化也是一个方向(量化)
![](/assets/blank.gif)
简单理解TransFormer相关推荐
- 【深度学习入门基础】二、简单理解 Transformer
[深度学习入门基础]二.简单理解 Transformer 文章目录 [深度学习入门基础]二.简单理解 Transformer 自注意力层 多头注意力 Transformer 输入(输出)嵌入 位置编码 ...
- 10分钟带你深入理解Transformer原理及实现
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|深度学习这件小事 基于 Transformer<A ...
- Java Apache Commons Collection3.2.1 理解Transformer 接口
Java Apache Commons Collection3.2.1 理解Transformer 接口 引言 Transformer 接口 InvokerTransformer MapTransfo ...
- 深入理解transformer源码
参考资料: transformer原论文 深入理解transformer及源码 图解Transformer(完整版) The Annotated Transformer The Annotated T ...
- 十分钟理解Transformer
本文转载于知乎文章:十分钟理解Transformer Transformer是一个利用注意力机制来提高模型训练速度的模型.关于注意力机制可以参看这篇文章,trasnformer可以说是完全基于自注意力 ...
- android 点击事件消费,Android View事件分发和消费源码简单理解
Android View事件分发和消费源码简单理解 前言: 开发过程中觉得View事件这块是特别烧脑的,看了好久,才自认为看明白.中间上网查了下singwhatiwanna粉丝的读书笔记,有种茅塞顿开 ...
- 【转载】Deep learning:十九(RBM简单理解)
Deep learning:十九(RBM简单理解) 这篇博客主要用来简单介绍下RBM网络,因为deep learning中的一个重要网络结构DBN就可以由RBM网络叠加而成,所以对RBM的理解有利于我 ...
- 学习:双机热备、集群、负载均衡、SQL故障转移群集简单理解(转)
双机热备.集群.负载均衡.SQL故障转移群集简单理解平常,大家常提到几个技术名词:双机热备.集群.负载均衡.SQL故障转移群集.这里,就我的理解,和大家简单探讨下,有不足或错误之处还请各位指出! 这些 ...
- 字符串匹配算法Java_如何简单理解字符串匹配算法?
这篇文章来说说如何简单理解KMP,BM算法.之前看过一些文章说,KMP算法很难理解. 可我并不觉得. 我反而觉得它容易理解.平时我们写java代码的时候, 判断一个字符串是否存在包含另一个字符串都是直 ...
最新文章
- java中properties作用,java中Properties类的使用
- 太阳直射点纬度计算公式_高中地理——每日讲1题(二十四节气、正午太阳高度、日出时间)...
- R语言包_manipulate
- 机器学习-回归之逻辑回归算法原理及实战
- Django Tips
- matlab 读取视频出现的问题
- mysql的area_GitHub - nszm/china_area_mysql: 中国5级行政区域mysql库
- 评论:我们该如何应对科技发展带来的失业
- require.js的AMD规范详解
- 台大李宏毅Machine Learning 2017Fall学习笔记 (8)Backpropagation
- 基因突变PHP6,基因突变中那些“披着狼皮的羊” 很多“致命性”基因突变正在被证实无害...
- javascript中replace的正则表达式语法
- bin mysql u root_MySQL安装后续步骤(修改root密码)
- linux 注册并配置
- vb查询mysql数据库_怎么在vb程序中查找数据库信息并显示
- 服务器虚拟化底层实现原理,虚拟化原理
- 微信小程序-各种跳转
- 组态王 6.55 启停plc_成套设备PLC编程深圳PLC编程
- 终于发现路由器里的广告秘密
- 程序员薪酬,未来的薪酬趋势