论文解读:Do You Even Need Attention?

开源代码:Do You Even Need Attention?

由于我还没接触transformer框架(占个坑,后面补充),故仅对文中提到的Feed-Forward层进行分析,后续再对该开源代码的整体进行分析。 文中提到了应用在patch维度上的前馈层取代了 vision transformer 中的注意层,由此产生的架构只是一系列以交替方式应用于patch和特征维度的前馈层。

在图中可以看到多层时,Feed-Forward层交替处理Features和Patches,同时LinearBlock网络中采用残差结构,网络展开如下:

LinearBlock((mlp1): Mlp((fc1): Linear(in_features=192, out_features=768, bias=True)(act): GELU()(fc2): Linear(in_features=768, out_features=192, bias=True)(drop): Dropout(p=0.0, inplace=False))(norm1): LayerNorm((192,), eps=1e-06, elementwise_affine=True)(mlp2): Mlp((fc1): Linear(in_features=197, out_features=788, bias=True)(act): GELU()(fc2): Linear(in_features=788, out_features=197, bias=True)(drop): Dropout(p=0.0, inplace=False))

分析得到FeedForward的网络结构图如下所示:

LinearBlock模块设计的源码:

class LinearBlock(nn.Module):def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm, num_tokens=197):super().__init__()# First stageself.mlp1 = Mlp(in_features=dim, hidden_features=int(dim * mlp_ratio), act_layer=act_layer, drop=drop)self.norm1 = norm_layer(dim)# Second stageself.mlp2 = Mlp(in_features=num_tokens, hidden_features=int(num_tokens * mlp_ratio), act_layer=act_layer, drop=drop)self.norm2 = norm_layer(num_tokens)# Dropout (or a variant)self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()def forward(self, x):x = x + self.drop_path(self.mlp1(self.norm1(x)))x = x.transpose(-2, -1)x = x + self.drop_path(self.mlp2(self.norm2(x)))x = x.transpose(-2, -1)return x

Feed-Forward Layers相关推荐

  1. Transformer结构解读(Multi-Head Attention、AddNorm、Feed Forward)

    咱们还是照图讨论,transformer结构图如下,本文主要讨论Encoder部分,从低端输入inputs开始,逐个结构进行: 图一 一.首先说一下Encoder的输入部分: 在NLP领域,个人理解, ...

  2. 【深度学习】CV和NLP通吃!谷歌提出OmniNet:Transformers的全方位表示

    在机器翻译.图像识别等任务上表现SOTA!性能优于Performer.ViT和Transformer-XL等网络. 作者单位:谷歌Research和大脑团队等 论文:https://arxiv.org ...

  3. bert 无标记文本 调优_使用BERT准确标记主观问答内容

    bert 无标记文本 调优 介绍 (Introduction) Kaggle released Q&A understanding competition at the beginning o ...

  4. PyTorch学习笔记(19) ——NIPS2019 PyTorch: An Imperative Style, High-Performance Deep Learning Library

    0. 前言 波兰小哥Adam Paszke从15年的Torch开始,到现在发表了关于PyTorch的Neurips2019论文(令我惊讶的是只中了Poster?而不是Spotlight?).中间经历了 ...

  5. AI实战:用Transformer建立数值时间序列预测模型开源代码汇总

    用Transformer建立数值时间序列预测模型开源代码汇总 Transformer是一个利用注意力机制来提高模型训练速度的模型.,trasnformer可以说是完全基于自注意力机制的一个深度学习模型 ...

  6. Dissecting BERT Part 1: The Encoder 解析BERT解码器(transformer)

    原文:https://medium.com/dissecting-bert/dissecting-bert-part-1-d3c3d495cdb3 A meaningful representatio ...

  7. “Attention is All You Need 翻译

    <p><img src="output_0_0.png" alt="png"></p> "Attention is ...

  8. 谷歌BERT预训练源码解析(二):模型构建

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_39470744/arti ...

  9. BERT大火却不懂Transformer?读这一篇就够了 原版 可视化机器学习 可视化神经网络 可视化深度学习...20201107

    20211016 调节因子 20211004 [NLP]Transformer模型原理详解 - 知乎 论文所用 20210703 GPT模型与Transformer进行对比_znevegiveup1的 ...

  10. 2018-3-31 文章(ELM-Chinese-Brief)原文

    什么是超限学习机 1 Guang‐Bin Huang School of Electrical and Electronic Engineering, Nanyang Technological Un ...

最新文章

  1. asp中sub与function的区别
  2. Bash命令行历史用法【转】
  3. Dubbo启动时检查
  4. 修建道路 贪心,思维(女赛)
  5. python流行的爬虫框架_Python爬虫相关框架
  6. Protobuf序列化的原理
  7. arm 架构_Arm架构之Arm内核解析
  8. Python-理解装饰器
  9. JavaEE实战班第19天
  10. 在Word里使用部分正则表达式
  11. one邮箱服务器端口,oneinstack 设置远程访问,将端口对外开放
  12. caffe学习日记--Lesson2:再看caffe的安装和使用、学习过程
  13. 最佳黑色背景的Visual Studio 2005/2008配置-尤其适合开发人员使用
  14. ffmpeg 解复用视频文件
  15. Windows XP 启动过程jjhou
  16. freenom免费域名的申请+cloudflare(域名代理解析)
  17. win10显示rpc服务器不可用,win10系统RPC服务器不可用如何处理?
  18. win10打字不显示选字框
  19. Linux下菜鸟用XMMS(转)
  20. HBase,phoenix

热门文章

  1. [高仿课堂派]学生老师课程管理系统(SpringBoot+Vue+MySQL数据库)
  2. 前端生成带有logo的二维码并保存
  3. 智慧养殖:鸡舍环境监测智慧管理系统
  4. 云亦然的日常短句集合(每日更新)
  5. 不忘初心,坚持创作和分享,做自己喜欢的事 - 2022 年回顾
  6. (附源码)计算机毕业设计SSM基于html的网上购物系统
  7. Linux里面的oa环境是什么,Linux上搭建OA环境帮助文档
  8. xposed定位插件_GpsHook实现模拟定位,手机需安装Xposed类框架
  9. 随机森林的“随机”在哪?
  10. 经典神经网络论文超详细解读(一)——AlexNet学习笔记(翻译+精读)