| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 结合代码看Vision Transformer【ViT】 -> 正文阅读 |
|
[人工智能]结合代码看Vision Transformer【ViT】 |
参考仓库: 论文:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale 有相关问题搜索知识星球号:1453755 【CV老司机】加入星球提问。扫码也可加入: 也可以搜索关注微信公众号: CV老司机 相关代码和详细资源或者相关问题,可联系牛先生小猪wx号: jishudashou 结构介绍: ViT: Transformer + Head Transformer: Embeddings [1x197x768] + Encoder Encoder: N x { Block_Sequence + layerNorm [非全局均值方差,有的实现没做】} Block: LayerNorm + MultiHeadAttension + LayerNorm + Mlp [中间有两次残差累加] >>> 以输入224x224x3为例,embedding :196+1 个patch , 768 通道【embedding dimension】 Embedding说明 patch embedding : 将图像分为16x16的小块,然后把16x16x3的小块拉平并跟一个FC做特征映射【有的实现是直接使用了kernel为16x16,stride为16的卷积实现,当然这里和我们说的Vision Transformer就有一定出入】 clstokens : 如果上面的patch embedding 为 1x196x768 , 这里的class token就是 1x1x768, 然后cat在一块儿。作为分类特征得汇总。【作用可以视为在CNN里面最后一层的FC logits】【注:维度也可以是 1x196x1024,:超参调节】 position embedding : NLP的实现中,position embedding 用来标记这个patch 在全局中的哪个位置,用于学习一定的结构信息。这里Vision Transformer 遵从原本设计,加入了这个可学习的position embedding. 参考的path embedding 代码:
LayerNorm说明 涉及到的算子如下:也就是上面的公式:减均值,除方差,乘以scale,加bias multi-Head Attention 实现 取得全图注意力。 在这里实现没有mask,NLP中用于句子不一样时,还有填空时,做掩码。 参考代码1:【和上图除了mask部分,流程部分基本一致】
参考代码2:
整体流程描述: 从整理流程聊聊为什么多头注意力可以获取全图的感受野。首先第一个矩阵乘,以上图为例,每一个输出点,获取到了输入图与输入图两两对应的乘累加结果【我们这里叫相关性,也可以叫感受野就是和另外一个patch通道维度】,第二次矩阵乘,输入就是两个patch相关性,单个点具备两个patch所有通道信息,乘累加过程就是,乘以对应通道权重,然后与其他所有patch乘以对应通道权重结果的累加,这样之后就影响这个点结果的因子覆盖了全图。也就是我们常说的感受野是全图。 >>> attention 每一行,patchN 与所有patch相关性,乘以对应通道权重的累加和。 MLP实现 两个FC+一个激活【gelu激活】
gelu实现:
? ? ? ?全文差不多就这些了。Vit用尽量接近Transformer的方式来做了视觉任务最基本的分类任务,并且也取得了十分SOTA的效果。十分新颖! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 10:33:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |