- 人工智能
- 计算机视觉
【免费下载链接】mobilevitv2_100.cvnets_in1k
如果你正在寻找一个轻量、快速且自带多尺度特征输出的图像模型,timm 中的mobilevitv2_100.cvnets_in1k(MobileViT-v2 架构,ImageNet-1k 预训练)是非常不错的选择。只需在timm.create_model()中加一个参数features_only=True,它就能输出 5 组分辨率递减的多尺度特征图,直接作为检测、分割等多任务网络的特征骨干(backbone)使用。下面用最短路径带你跑通整个流程。
📦 模型速览:4.9M 参数的轻量特征骨干
mobilevitv2_100.cvnets_in1k 是一款基于MobileViT-v2架构的图像分类模型,由论文作者训练后发布,核心指标如下(数据来自 README.md):
| 指标 | 数值 | 说明 |
|---|---|---|
| 参数量 | 4.9 M | 极其轻量,适合移动端部署 |
| 计算量(GMACs) | 1.8 | 推理速度飞快 |
| 输入尺寸 | 256 × 256 | 预训练基准输入 |
| 激活量 | 16.1 M | 显存占用小 |
| 预训练数据集 | ImageNet-1k(1000 类) | 通用视觉表征 |
MobileViT-v2 是 ConvNeXt 与 Vision Transformer 分离式自注意力结合的产物,卷积负责局部细节,注意力负责全局语义,因此它输出的特征图既有空间精度,又富含语义信息——这正是多任务骨干需要的"甜点区"。
模型配置详情可查阅 config.json,其中两个字段值得注意:
input_size: [3, 256, 256]:预训练输入为 256×256mean: [0,0,0]/std: [1,1,1]:图像只需归一化到 [0,1] 区间,无需均值方差标准化,预处理更简单
🎯 为什么选它做多尺度特征提取?
用features_only=True加载时,timm 会自动剥离分类头,返回网络各阶段的全部特征图(而不是单个向量),这带来三个直接好处:
- 一套骨干,多任务复用🚀 —— 浅层图(如 128×128)保留细节,适合小目标检测;深层图(如 8×8)语义强,适合分割与分类;
- 比 ConvNeXt-Tiny / EfficientNet 更轻—— 4.9M 参数、1.8 GMACs 的量级,端侧、边缘设备友好;
- 预处理极简—— 无需 ImageNet 均值方差,只要 resize + 缩放到 [0,1],新手不易踩坑。
🚀 快速上手:3 步提取多尺度特征图
官方在 README.md 中给出了完整示例,核心代码如下:
import timm from PIL import Image # 第 1 步:以 features_only 模式加载预训练模型 model = timm.create_model( 'mobilevitv2_100.cvnets_in1k', pretrained=True, features_only=True, # 关键参数:输出多尺度特征图 ) model.eval() # 第 2 步:获取模型专用预处理(resize + 归一化到 [0,1]) data_config = timm.data.resolve_model_data_config(model) transforms = timm.data.create_transform(**data_config, is_training=False) img = Image.open('cat.jpg') # 第 3 步:前向推理,得到 5 组特征图 with torch.no_grad(): feature_maps = model(transforms(img).unsqueeze(0)) for fm in feature_maps: print(fm.shape)输出结果(单张 256×256 图像)依次为:
torch.Size([1, 64, 128, 128]) torch.Size([1, 128, 64, 64]) torch.Size([1, 256, 32, 32]) torch.Size([1, 384, 16, 16]) torch.Size([1, 512, 8, 8])🗺️ 输出解读:5 组特征图的尺寸与用途
| 阶段 | 形状 (C, H, W) | 下采样倍率 | 语义层次 | 典型用途 |
|---|---|---|---|---|
| 1 | 64, 128×128 | 1/2 | 边缘、纹理 | 轮廓检测、小目标 |
| 2 | 128, 64×64 | 1/4 | 局部部件 | 小目标检测、关键点 |
| 3 | 256, 32×32 | 1/8 | 局部结构 | 检测 Neck 主输入 |
| 4 | 384, 16×16 | 1/16 | 部件级语义 | 目标检测 |
| 5 | 512, 8×8 | 1/32 | 全局语义 | 分割、嵌入、分类 |
💡 接 FPN / PANet 这类特征金字塔时,通常取1/4、1/8、1/16这三层作为主输入,效果与计算量的平衡最好。
🔧 常见应用场景
- 目标检测骨干:把特征图送入 FPN 后接检测头,配合 4.9M 的小体量,非常适合轻量检测模型;
- 图像分割:1/4~1/8 阶段特征经上采样后可直接做语义/实例分割;
- 图像嵌入与检索:若只需要单尺度向量表征,改用
num_classes=0加载,再调用model.forward_features(x)得到未池化的 (1, 512, 8, 8) 张量(参考 README.md 的 Image Embeddings 示例); - 异常检测 / 少样本学习:浅层特征图的逐像素差异可用于训练数据之外的异常定位。
⚠️ 实用技巧与避坑清单
features_only=True≠num_classes=0:前者返回多尺度特征图列表;后者只是去掉分类头,输出仍是深层特征,需手动调用forward_features。两者不要混用;- 输入分辨率:预训练基准是 256×256。换尺寸时只要保证是 32 的倍数即可,但建议保持 256 以匹配预训练分布;
- 预处理顺序:先 resize 到目标尺寸,再缩放到 [0,1](
mean=0, std=1,见 config.json),不要套用 ImageNet 均值方差; - 冻结骨干:迁移学习时通常先
requires_grad_(False)冻结全部 backbone,只训练后接的 Neck/Head,收敛更快、更不容易过拟合; - 加载权重来源:本仓库提供两种权重格式 —— model.safetensors(推荐,加载更快更省内存)与 pytorch_model.bin(传统 PyTorch 格式),timm 在
pretrained=True时会按需自动下载匹配格式; - 批量推理:
features_only模式下输出是列表,每个元素是[B, C, H, W],批处理时记得对 batch 维做后续拼接或分通道处理。
📁 本仓库文件说明
| 文件 | 作用 |
|---|---|
| README.md | 模型卡:分类/特征提取/嵌入 3 种用法示例 |
| config.json | 模型架构、预训练配置(输入尺寸、归一化等) |
| model.safetensors | 预训练权重(safetensors 格式) |
| pytorch_model.bin | 预训练权重(PyTorch 格式) |
❓ 常见问题 FAQ
Q1:不写pretrained=True可以吗?可以,会使用随机初始化权重。但特征质量会大打折扣,多任务训练一般应加载 ImageNet 预训练权重。
Q2:为什么我的输出不是 5 组?确认创建模型时传入的是features_only=True;如果只得到单个张量,多半是用了num_classes=0或调用了forward_features。
Q3:能替换成其他输入尺寸(如 320×320)吗?可以,模型支持动态输入(fixed_input_size: false),保持尺寸是 32 的倍数即可,注意特征图分辨率会等比放大。
✅ 小结
- 加载参数一行搞定:
timm.create_model('mobilevitv2_100.cvnets_in1k', pretrained=True, features_only=True) - 输出5 组多尺度特征图(1/2 ~ 1/32),覆盖从纹理到全局语义
- 4.9M 参数 + 1.8 GMACs,是轻量多任务网络的理想特征骨干
- 预处理只要缩放到 [0,1],无均值方差,新手友好
掌握features_only用法后,你可以把这套流程平移到 timm 中其他骨干(ConvNeXt、EfficientNet、ViT 系列)上,多任务迁移学习的成本会大幅降低。
- 人工智能
- 计算机视觉
【免费下载链接】mobilevitv2_100.cvnets_in1k
相关推荐
如何把 maxvit_base_tf_384.in21k_ft_in1k 用作特征骨干网络:features_only 多尺度特征图提取完全指南
如何把 maxvit_base_tf_384.in21k_ft_in1k 用作特征骨干网络:features_only 多尺度特征图提取完全指南 maxvit_
如何把maxvit_xlarge_tf_224.in21k当作特征骨干网?features_only五级特征图提取完全指南
如何把maxvit_xlarge_tf_224.in21k当作特征骨干网?features_only五级特征图提取完全指南 maxvit_xlarge_tf_2
把 regnety_016.pycls_in1k 当特征骨干:特征图提取实战教程
把 regnety_016.pycls_in1k 当特征骨干:特征图提取实战教程 regnety_016.pycls_in1k 是 timm 生态中一款仅 11
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考