使用Pytorch从零实现Vision Transformer

news/2024/7/19 11:09:17 标签: pytorch, transformer, 人工智能

在这篇文章中,我们将基于Pytorch框架从头实现Vision Transformer模型,并附录完整代码。

Vision Transformer(ViT)是一种基于Transformer架构的深度学习模型,用于处理计算机视觉任务。它将图像分割成小的图像块(patches),然后使用Transformer编码器来处理这些图像块。ViT的核心思想是将图像转换为序列数据,然后通过自注意力机制建立图像中不同位置之间的关系。

模型详解

在这里插入图片描述

如上图所示为Vision Transformer(ViT)的模型框架,由三个模块组成:

  • Linear Projection of Flattened Patches(Embedding层,将子图映射为向量)
  • Transformer Encoder(编码层,对输入的信息进行计算学习)
  • MLP Head(用于分类的层结构)

Embedding层

标准的Transformer模型的输入是token(向量)序列,即二维矩阵[num_token, token_dim],其中每行是一个token向量,如下图所示,token0-9对应的都是向量,以ViT-B/16(其中B表示模型的大小,16表示图像被分割成的小块的大小)为例每个token向量长度为768。


http://www.niftyadmin.cn/n/5054626.html

相关文章

C#设置自动关机

功能:自动设置电脑关机时间,可取消 创建一个shutdown函数,bool isCancle,传入值为ture就取消关机,interval间隔时间,unit不带符号的整型 private static void ShutdownPC(bool isCancel, uint interval){P…

Linux发行版X华为鲲鹏openEuler

前言 作为硬件和软件之间的桥梁,我接触的最多的就是Windows和Centos,还记得最初的鸟哥的Linux私房菜,而Centos即将停止维护更新(Centos7维护到2024),对于个人学习来说没有任何影响,但是对于企业…

2023-09-27 mysql-代号m-load加载数据出错-记录与分析

摘要: 2023-09-27 mysql-代号m-load加载数据出错-记录与分析 相关文档: https://stoneatom.yuque.com/staff-ft8n1u/lsztbl/ww00x6o4hf785905#AqyB bug记录: load data中,不支持使用包裹符"ENCLOSED BY",否则导致实例crash. https://devops…

lazada、shopee卖家自养号测评的优势及环境搭建核心要点!

lazada、shopee卖家们都知道,流量对于店铺转化率具有非常重要的作用,要真正提升销售业绩和品牌知名度,仅仅依赖lazada、shopee内部的流量是不够的。这也就说明越来越多的卖家需要测评,用测评来提升产品的销量,留下好评…

【JavaScript】声明变量的关键字let、var、const和val的区别

当声明变量时,使用不同的关键字会产生不同的效果: 使用var关键字: var x 10; var x 20; // 可以重新声明 x 30; // 可以重新赋值使用let关键字: let y 10; let y 20; // 重复声明会报错 y 30; // 可以重新赋值使用const关…

crypto:丢失的MD5

题目 得到一个md5.py 运行一下,发现报错,修改一下 运行之后又报错 报错原因是算法之前编码 正确的代码为 import hashlib for i in range(32,127):for j in range(32,127):for k in range(32,127):mhashlib.md5()m.update((TASC chr(i) O3RJMV c…

逆向入门及实战

一、逆向工程介绍 1.1 什么是逆向工程 提到逆向工程可能大多数人第一印象就是非道德层面的软件破解,其实不然,逆向工程又称为逆向技术,是一种产品设计技术再现过程,即对一项目产品进行逆向分析及研究,从而演绎并得出该…

塑造下一代教育的关键力量:AIGC在教育革命中的角色扮演

2023年,前沿技术突破掀起了全球范围内的行业变革,而 AIGC作为一种新型的内容创作方式,打造了全新的数字内容生成与交互形态。借由 AIGC 技术,各行各业的内容生产流程都迎来了颠覆性的变革。当这股风暴席卷教育行业,它又…