【免费下载链接】pvt_v2_b4
PVTv2(Pyramid Vision Transformer v2)是计算机视觉领域最受欢迎的轻量级视觉骨干网络(backbone)之一。本文以开源模型库OpenGVLab/pvt_v2_b4为实例,带你 5 分钟横向对比 b0 ~ b4 共 5 个尺寸,帮你在手机部署、云端推理、科研基线等不同场景下快速选对模型。
PVTv2 到底是什么?
PVTv2 属于「层级式(金字塔)Transformer」,核心设计有三点:
- 卷积 + 自注意力混合:在每个 Transformer 层中注入卷积操作,保留 CNN 对局部特征的归纳偏置,学习图像更高效
- 无需位置编码:混合式设计使其不需要额外的 positional embedding
- 4 阶段金字塔结构:输出多尺度特征图,天生适合分割、检测等稠密任务
用它做骨干的知名下游模型:
| 下游模型 | 任务方向 |
|---|---|
| Segformer | 语义分割 |
| GLPN | 单目深度估计 |
| Deformable DETR | 2D 目标检测 |
| Panoptic Segformer | 全景分割 |
更详细的模型说明可查阅 README.md。
一张表看懂 PVTv2 的金字塔结构
PVTv2 家族提供b0、b1、b2、b3、b4五个尺寸,b0 最轻、b4 最大。它们共享同一套 4 阶段金字塔结构,差别主要在「层数」和「通道数」。
以本仓库的 b4 为例,打开 config.json 就能直接读出核心结构参数:
| 配置项 | b4 的取值 | 含义 |
|---|---|---|
depths | [3, 8, 27, 3] | 每个阶段的 Transformer 层数 |
hidden_sizes | [64, 128, 320, 512] | 每个阶段的通道数 |
num_attention_heads | [1, 2, 5, 8] | 每个阶段的注意力头数 |
sr_ratios | [8, 4, 2, 1] | 空间压缩比,控制注意力开销 |
linear_attention | false | 是否启用线性注意力 |
对应位置:depths、hidden_sizes、linear_attention。
b0 到 b4 全尺寸对比:横评核心
以下是 PVTv2 官方各尺寸在 ImageNet-1K 上的公开数据(224×224 输入):
| 尺寸 | depths(层数) | FLOPs | 参数量 | Top-1 精度 | 注意力类型 |
|---|---|---|---|---|---|
| b0 | 2-1-1-2 | 1.4G | 3.6M | 75.3% | 线性 |
| b1 | 2-3-3-2 | 2.4G | 13.3M | 81.1% | 线性 |
| b2 | 3-6-6-3 | 3.7G | 24.5M | 82.6% | 线性 |
| b3 | 3-8-27-3 | 5.2G | 43.8M | 83.5% | 线性 |
| b4 | 3-8-27-3 | 19.8G | 62.4M | 83.6% | 标准(softmax) |
从表中能读出 3 个关键结论:
- b0 → b2 是精度「甜蜜区」:模型增大、精度快速提升,性价比最高;
- b3 是最佳平衡点:层数与 b4 相同,但凭借线性注意力把 FLOPs 压到 5.2G,却几乎拿到 b4 的精度;
- b4 属于「基线型」:层数与 b3 完全一致,只是把线性注意力换成标准注意力,FLOPs 飙到 19.8G,精度却只比 b3 高 0.1%——它更适合科研基线与精度上限测试,而非生产首选。
如果拿来做分割骨干(Segformer 在 ADE20K 数据集的 mIoU),趋势完全一致:b0 43.0 → b1 48.5 → b2 49.8 → b3 51.0 → b4 51.6。
🎯 5 分钟速选指南
| 你的场景 | 推荐尺寸 | 理由 |
|---|---|---|
| 手机 / 嵌入式 / 极致低延迟 | b0 | 仅 3.6M 参数、1.4G FLOPs |
| 移动端且对精度有更高要求 | b1 | 2.4G FLOPs,Top-1 达 81.1% |
| 通用场景(云端 GPU 或高端边缘设备) | b2 | 性能均衡,最「稳妥」的选择 |
| 服务器 GPU、精度优先 | b3 | 线性注意力效率极高,精度直逼 b4 |
| 科研基线 / 追求精度上限 | b4 | 标准注意力,表征能力最强 |
一句话总结:80% 的生产场景用 b2 或 b3 就够了;移动端选 b0 / b1;b4 留给科研。
如何上手这个 pvt_v2_b4 模型
本仓库就是 PVTv2 家族最大的b4 预训练模型(ImageNet-1K 分类,共 1000 类),目录极简,只有 4 个文件、分工明确:
- model.safetensors —— 模型权重,约 250MB(float32)
- config.json —— 结构配置,含 1000 个类别的
id2label映射与 4 阶段out_features - preprocessor_config.json —— 预处理配置:224×224 输入,ImageNet 标准归一化(mean [0.485, 0.456, 0.406]、std [0.229, 0.224, 0.225])
- README.md —— 模型说明
使用 Hugging Facetransformers加载只需几行:
from transformers import AutoImageProcessor, AutoModel processor = AutoImageProcessor.from_pretrained("OpenGVLab/pvt_v2_b4") model = AutoModel.from_pretrained("OpenGVLab/pvt_v2_b4")作为骨干网络时,还可以从stage1 ~ stage4四个阶段提取多尺度特征图(见 config.json 的 out_features),直接接上分割或检测头。
💡 常见问题
Q:b4 的层数和 b3 一样,为什么重这么多?A:b4 关闭了线性注意力(linear_attention: false),改用标准自注意力。注意力计算量随序列长度平方增长,FLOPs 因此从 5.2G 跳到 19.8G,换来的是更强的特征表征。
Q:小模型能直接替代 b4 吗?A:不能简单替代。b0 的 FLOPs 只有 b4 的约 1/14,但精度低 8 个点。对延迟敏感的场景建议从 b1 / b2 起步,或考虑用大模型做知识蒸馏。
Q:可以改输入分辨率吗?A:可以。PVTv2 的层级结构对多尺度输入天然友好,但本仓库默认预处理是 224×224(见 preprocessor_config.json),高分辨率任务时记得同步调整预处理参数。
总结
- 追求轻快→ 选b0 / b1
- 追求均衡→ 选b2 / b3(最推荐)
- 追求科研精度→ 选b4(即本仓库)
PVTv2 用「卷积 + Transformer 混合 + 金字塔多尺度输出」的设计,让轻量骨干在稠密任务上也有出色的发挥空间。下次做 CV 项目时,不妨从这张横评表出发,5 分钟定下你的 backbone。
【免费下载链接】pvt_v2_b4
相关推荐
初识PVTv2-B5:Hugging Face轻量级视觉Transformer骨干网络完整入门指南
初识PVTv2 B5:Hugging Face轻量级视觉Transformer骨干网络完整入门指南 PVTv2 B5 是 Hugging Face 模型库中基于
PVTv2-B5 vs ViT vs Swin:主流视觉Transformer骨干网络终极对比与选型清单
PVTv2 B5 vs ViT vs Swin:主流视觉Transformer骨干网络终极对比与选型清单 在做视觉模型时, 视觉 Transformer(Vis
PaddleClas 中的 MobileViT 系列:轻量级视觉 Transformer 骨干网络详解
PaddleClas 中的 MobileViT 系列:轻量级视觉 Transformer 骨干网络详解 MobileViT 是 Apple 团队提出的一类轻量级
人工智能深度学习计算机视觉
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考