ViT模型中的tokens和patches概念辨析

编程入门 行业动态 更新时间:2024-10-21 06:42:26

ViT<a href=https://www.elefans.com/category/jswz/34/1771358.html style=模型中的tokens和patches概念辨析"/>

ViT模型中的tokens和patches概念辨析

概念辨析

在ViT模型中,“tokens”(令牌)和"patches"(图像块)是两个相关但不同的概念。

  • 令牌(Tokens):在ViT中,令牌是指将输入图像分割成固定大小的图块,并将每个图块映射为一个向量表示。这些向量表示即为令牌。每个令牌代表图像中的一个局部区域,可以看作是图像的抽象表示。通过将图像分割成令牌序列,并将其输入到Transformer模型中,ViT能够利用自注意力机制来建模图像中的全局关系。

  • 图像块(Patches):图像块是指将输入图像分割成固定大小的小块。在ViT中,图像块被用作生成令牌的基本单位。每个图像块由一组像素组成,并通过线性变换映射为令牌的向量表示。图像块的目的是将图像分割为可处理的小块,以便进行后续的编码和处理。

因此,图像首先被分割为图像块(patches),然后每个图像块被映射为一个令牌(tokens)。令牌是对图像块的抽象表示,用于输入到Transformer模型中进行全局关系的建模。

对于标准的Transformer模块,要求输入的是token(向量)序列,即二维矩阵[num_token, token_dim],如下图,token0-9对应的都是向量。

输入步骤

  1. 首先将一张图片按给定大小分成一堆Patches。以ViT-B/16为例,将输入图片大小(224x224)按照16x16大小的Patch进行划分,划分后会得到 ( 224 / 16 ) 2 = 196 ( 224 / 16 ) ^2=196 (224/16)2=196个Patches。
  2. 通过线性映射将每个Patch映射到一维向量中,以ViT-B/16为例,每个Patche数据shape为[16, 16, 3]通过映射得到一个长度为768的向量(直接称为token)

总结起来,图像块是图像的原始分割块,而令牌是对图像块的向量表示,用于输入ViT模型进行处理。

参考:Vision Transformer详解

更多推荐

ViT模型中的tokens和patches概念辨析

本文发布于:2023-11-16 07:25:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1614652.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模型   概念   ViT   patches   tokens

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!