ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用Pytorch手写ViT — VisionTransformer

2022-08-22 10:30:56  阅读:463  来源: 互联网

标签:Transformer 嵌入 架构 transformer VisionTransformer Pytorch ViT 图像


《The Attention is all you need》的论文彻底改变了自然语言处理的世界,基于Transformer的架构成为自然语言处理任务的的标准。

尽管基于卷积的架构在图像分类任务中仍然是最先进的技术,但论文《An image is worth 16x16 words: transformer for image recognition at scale》表明,计算机视觉中CNNs的依赖也不是必要的,直接对图像进行分块,然后使用序纯transformer可以很好地完成图像分类任务。

在ViT中,图像被分割成小块,并将这些小块的线性嵌入序列作为Transformer的输入。对图像进行补丁处理方式与NLP应用程序中的标记(单词)相同。

由于缺乏 CNN 固有的归纳偏差(如局部性),Transformers 在数据量不足的情况下不能很好地泛化。但是当在大型数据集上进行训练时,它在多个图像识别基准上确实达到或超过了最先进的水平。在深入本文之前,如果你从未听说过 Transformer 架构,我强烈建议你查看 The Illustrated Transformer。

在开始实现之前,我们先看看ViT架构

可以看到输入图像被分解成 16x16 的扁平化块,然后使用普通的全连接层对这些块进行嵌入操作,并在它们前面包含特殊的 cls token 和位置嵌入。

线性投影的张量被传递给标准的 Transformer 编码器,最后传递给 MLP 头,用于分类目的。

完整文章:

https://avoid.overfit.cn/post/da052c915f4b4309b5e6b139a69394c1

标签:Transformer,嵌入,架构,transformer,VisionTransformer,Pytorch,ViT,图像
来源: https://www.cnblogs.com/deephub/p/16611968.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有