首页 > 其他分享 >vit的线性映射过程

vit的线性映射过程

时间:2024-08-09 22:50:40浏览次数:11  
标签:映射 展平 维度 vit 图像 线性 向量

Vision Transformer 线性映射

Vision Transformer (ViT): 线性映射

1. 展平图像块

假设输入的图像块大小为 P × P 像素,并且图像有 C 个通道(对于RGB图像,通常 C = 3)。

每个图像块被展平成一个向量,向量的维度为 P × P × C 。

例如,对于一个16x16像素的RGB图像块,展平后的向量长度为 16 × 16 × 3 = 768 。

2. 线性映射的目的

线性映射的目标是将这个展平后的向量映射到一个新的空间,该空间的维度通常与Transformer模型的隐藏层维度一致,记作 D 。

常见的 D 的选择有768或1024等。

3. 线性映射的实现方式

线性映射可以理解为一个简单的全连接层。注意这个全连接层是需要训练的

对于每个展平后的图像块向量 x(长度为 P × P × C ),线性映射通过矩阵乘法来完成:

z = x · W + b

  • x 是输入的展平向量,维度为 P × P × C 。
  • W 是线性映射的权重矩阵,维度为 (P × P × C) × D 。
  • b 是偏置向量,维度为 D 。
  • z 是输出的嵌入向量,维度为 D 。

4. 高效实现

由于每个图像块的向量是独立处理的,因此可以使用矩阵运算批量处理所有图像块,利用并行计算加速训练和推理过程。

在实际实现中,这个线性映射通常通过深度学习框架中的全连接层(如PyTorch中的 nn.Linear 或 TensorFlow中的 Dense)来实现。

5. 结果

每个图像块被转换为一个维度为 D 的嵌入向量,这些嵌入向量与位置编码相加后,作为Transformer的输入。

6. 简化公式

这里是简化后的公式:

  • 输入展平向量:x (长度 P × P × C )
  • 输出嵌入向量:z (长度 D )
  • 权重矩阵:W (维度 (P × P × C) × D )
  • 线性映射公式:z = x · W + b

通过这个线性映射,ViT能够将原始图像块转换为具有更高表达能力的向量表示,使得Transformer能够有效地处理和学习图像数据的特征。

标签:映射,展平,维度,vit,图像,线性,向量
From: https://www.cnblogs.com/chentiao/p/18351628

相关文章

  • 欧拉筛线性筛质数
    欧拉筛线性筛质数经典题解我的乱搞筛法和欧拉线性筛法的速度对比:模版code#include<bits/stdc++.h>usingnamespacestd;constintmaxn=100000009;boola[100000009];intread(){intx=0,f=1;charch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;ch=ge......
  • AP5101C 6-100V 2A LED降压恒流型的线性调光驱动器 台灯手电筒与汽车灯方案
    产品描述AP5101C是一款高压线性LED恒流芯片,外围简单、内置功率管,适用于6-100V输入的高精度降压LED恒流驱动芯片。最大电流2.0A。AP5101C可实现内置MOS做2.0A,外置MOS可做3.0A的。AP5101C内置温度保护功能,温度保护点为130度,温度达到130度时,输出电流慢慢减小,达到保护芯片电路......
  • 数学建模——线性规划模型
    前言:当学习完线性规划模型,我感觉到了数学建模的“细腻”之处,也可以从中感觉到他“细腻”的美感,为此想记录一下我学习数学建模的一些笔记跟心得。线性规划模型一般是求解最大值最小值问题,如果目标函数f(x)和约束条件均是决策变量的线性表达式,(即没有平方项和乘积项),那么此时的数......
  • activiti初始化报:java.sql.SQLSyntaxErrorException: Table ‘activiti.act_ge_proper
    在学习activiti过成中,由于使用的MySQL是8版本的,所以报了:org.apache.ibatis.exceptions.PersistenceException: ###Errorqueryingdatabase. Cause:java.sql.SQLSyntaxErrorException:Table'activiti.act_ge_property'doesn'texist###Theerrormayexistinorg/......
  • 手写VIT
    importtorchimporttorch.nnasnnimporttorch.nn.functionalasFfromeinopsimportrearrange,repeatfromeinops.layers.torchimportRearrangeclasspre_process(nn.Module):def__init__(self,image_size,patch_size,patch_dim,dim):"......
  • 机器学习算法之一 线性回归
    1.线性预测函数定义左侧为真实值,右侧为预测值与误差的和,其中为权重矩阵。2.目标函数的推导2.1高斯分布函数误差符合独立同分布假设,服从均值为0的高斯分布:将线性函数带入,得:......
  • 从 python 设置运算符符号到方法名称的映射是什么?它们与文档不匹配
    我创建了自己的Customset类,它实现了python集合的几乎所有方法。当我使用此自定义集的实例时,许多集合运算符都会失败。它们会失败,并显示类似以下内容的内容:TypeError:unsupportedoperandtype(s)for-:'Customset'andCustomset'orTypeError:'<='......
  • 关于在firewall防火墙无法阻止Docker 容器映射端口被外部访问问题的回顾
    这个问题是很早之前处理的,我自己已经没有印象了,今天同事拿了一个处理安全的文档来找我,上面赫然出现了我的名字,比较懵逼。。。这个问题的现象实际上是 docker映射的端口,通过firewalld 防火墙禁用端口不生效,外部还是能访问到,公司在进行安全扫描的时候总是被抓。。。。在firewall......
  • vue3+vite+ts 颜色选择器组件支持颜色吸取,透明度
    ciw-color-picker-vue:vue3+vite+ts颜色选择器,支持颜色吸取,透明度,与浏览器原生颜色选择器相似,与饿了么颜色选择器相似使用了ciw-color-picker-vuenpmi ciw-color-picker-vue 安装 npmiciw-color-picker-vue全局引入方式main.ts或main.js import'ci......
  • 【数值计算方法】非线性方程求根
    第七章非线性方程求根非线性方程求根非线性方程求根的基本问题非线性方程求解的问题也可以提为:\(f(x)=y\),其中:\(f:\mathbb{R}^n\to\mathbb{R}^m\)是一个非线性函数,\(y\in\mathbb{R}^m\)是给定的向量,\(x\in\mathbb{R}^n\)是一个未知向量.一般的,令\(g(x)=f(x)......