ViT 为什么可以对任意维度的图像进行编码?

结论先行

严格来说,ViT 并不能处理真正任意维度的图像 。它能处理"灵活尺寸"图像的前提是:图像尺寸必须是 patch size 的整数倍。在此前提下,通过以下机制实现灵活编码。


核心机制

1. Patch 切分:变化的是数量,不是维度

ViT 使用固定大小的 patch(如 16×16)对图像进行切分:

  • patch size 固定 → 每个 patch 展平后维度固定(如 16×16×3 = 768)
  • 图像尺寸变化 → patch 数量 变化,但每个 patch 维度不变
输入图像尺寸 每个 patch 维度 patch 数量
224×224×3 16×16×3 = 768(固定) 196 个
320×320×3 16×16×3 = 768(固定) 400 个
384×384×3 16×16×3 = 768(固定) 576 个

2. 线性投影:统一映射到固定 embedding 维度

每个 patch 经过同一个线性投影层映射到固定维度 D(如 768)。该层参数只依赖于 patch size 和 embedding dim,与图像尺寸无关。

3. Transformer:天然支持可变长序列

Self-Attention 机制对序列中所有 token 两两计算注意力,不限制序列长度。因此 196 个 token 或 400 个 token 都可以被同一个 Transformer Encoder 处理。

4. Position Embedding:插值适配不同序列长度

原始 ViT 使用可学习的 1D 位置编码,训练时长度固定。当推理时图像尺寸不同导致 patch 数量变化时,对位置编码做 2D 插值,使其适配新的序列长度。


那如果图像尺寸不是 patch size 的整数倍呢?

ViT 没有神奇地解决这个问题,而是在输入前通过预处理保证整除

方法 说明 常用程度
Resize 直接缩放到整除尺寸(如 224、384) ⭐⭐⭐ 最常用
Padding 填充边缘到整除尺寸 ⭐⭐ 常用
不完整 Patch 边缘单独处理 ⭐ 极少用

这也是为什么 ViT 标准输入几乎都是 224×224、384×384 这类数字------它们恰好是 16 的整数倍。


整体流程

复制代码
任意尺寸图像(预处理保证是 patch size 整数倍)
        ↓
切分为固定大小 patch → 生成 N = HW/P² 个 patch(数量可变)
        ↓
每个 patch 展平 → 线性投影到固定维度 D(维度固定)
        ↓
加入 [CLS] token → 序列长度 N+1
        ↓
Position Embedding(尺寸变化时做 2D 插值)
        ↓
Transformer Encoder(天然支持可变长序列)
        ↓
取 [CLS] token 输出 → 分类

一句话总结

ViT 的本质是:用固定大小的"剪刀"把图像剪成数量不等但大小相同的 patch,Transformer 天然能处理长度可变的序列,再配合位置编码插值,从而实现对不同尺寸图像的灵活编码。真正的前提保障则是预处理阶段的 Resize 或 Padding。

相关推荐
eBest数字化转型方案2 分钟前
Route Optimization for FMCG:多目标排线算法的工程实现
大数据·人工智能·算法
武子康5 分钟前
Seedream 5.0 Pro 进入 Vercel AI Gateway:图像生成开始网关化
人工智能·ai·chatgpt·gateway·agent·claude·harness
能源科技集8 分钟前
GWh时代储能逻辑生变,远景动力(AESC)790Ah电芯反向定义系统最优解
人工智能
Forerror20269 分钟前
API网关怎么部署?MAI Gateway配置教程与最佳实践
人工智能·gateway·maigateway·finapi·企业级ai网关·大模型财务管控
2601_9621007311 分钟前
AI批量生成视频的工程化复盘(2026):一条能断点续跑、不重复扣量的出片脚本
人工智能·音视频
qq_4255161817 分钟前
双语字幕会议记录APP:多语言会议整理工具推荐
人工智能·智能手机·语音识别
xian_wwq20 分钟前
【学习笔记】-深度认知系列-第8讲主流AI模型横向评测——GPT、Claude、Gemini、盘古、文心、通义
人工智能·笔记·学习
面包狗AI4S21 分钟前
Codex/ChatGPT 反复 Reconnecting(正在重新连接) 5/5 的最简修复方法
人工智能·vscode·chatgpt
小柯南敲键盘22 分钟前
跨境电商批量图片翻译与视频字幕翻译,就用跨马AI工具
大数据·人工智能·python·音视频
嘿嘿-6623 分钟前
Cherry Studio 接入ChatGpt:GPT-5.6 Sol 文本测试与 GPT-Image-2 出图教程
人工智能·gpt·ai·chatgpt·node.js·ai编程