【免费下载链接】tf_mixnet_l.in1k
tf_mixnet_l.in1k 是 timm(PyTorch Image Models)提供的一款 MixNet 图像分类模型,在 ImageNet-1k 上完成预训练,仅 7.3M 参数、0.6 GMACs,轻量高效。本文面向新手,用一篇文章讲清楚它的3 种官方用法:图像分类、特征图提取、图像 Embeddings,并解读 config.json 中的关键配置,帮你快速选对用法。
先认识 tf_mixnet_l.in1k 是什么?🔎
MixNet 源自 Google 的 MixConv 论文(Mixed Depthwise Convolutional Kernels),通过混合不同尺寸的深度可分离卷积核,在精度和计算量之间取得了很好的平衡。
这个仓库是tf_mixnet_l.in1k的模型卡片与权重镜像:模型由论文作者用 TensorFlow 训练,再移植为 PyTorch 版本(即 timm 生态)。核心信息如下:
| 项目 | 说明 |
|---|---|
| 模型类型 | 图像分类 / 特征骨干(backbone) |
| 参数量 | 7.3M(约 28MB 权重) |
| 计算量 | 0.6 GMACs,非常适合端侧与低算力场景 |
| 输入尺寸 | 224 × 224 |
| 训练数据集 | ImageNet-1k(1000 类) |
| 分类特征维度 | 1536 |
| 许可证 | apache-2.0 |
📁仓库文件结构一览:
| 文件 | 作用 |
|---|---|
| README.md | 模型卡片,包含 3 种官方用法的完整示例代码 |
| config.json | 模型架构与预训练预处理配置(mean/std、裁剪比例等) |
| model.safetensors | safetensors 格式权重(Git LFS 指针,实际约 28MB) |
| pytorch_model.bin | PyTorch 二进制格式权重(Git LFS 指针,实际约 28MB) |
💡 两个权重文件内容等价,只是存储格式不同;新项目中建议优先使用加载更安全的 safetensors 格式。
用法一:图像分类(Image Classification)🏷️
这是最直观的用法:给模型一张图,输出 ImageNet 1000 个类别的概率分布。
官方流程只有 4 步,核心思路是「加载模型 → 取官方预处理 → 前向 → 取 Top-K」:
model = timm.create_model('tf_mixnet_l.in1k', pretrained=True) model = model.eval() data_config = timm.data.resolve_model_data_config(model) transforms = timm.data.create_transform(**data_config, is_training=False) output = model(transforms(img).unsqueeze(0)) top5_prob, top5_idx = torch.topk(output.softmax(dim=1) * 100, k=5)几个新手容易踩的坑:
- 预处理要跟着模型走:
resolve_model_data_config会自动应用模型专属的归一化与 resize 参数(对应 config.json 中的mean/std/crop_pct),不要用「自认为标准」的参数替代; - 输出形状是
(batch, 1000):softmax 后即可解释为各类别概率,k=5表示取 Top-5 预测; - 完整可运行示例见 README.md 的 Image Classification 小节。
用法二:特征图提取(Feature Map Extraction)🗺️
如果你做目标检测、分割等下游任务,往往不需要分类头,而是想要中间的特征图。timm 只需用一个参数features_only=True切换模式:
model = timm.create_model('tf_mixnet_l.in1k', pretrained=True, features_only=True) model = model.eval() data_config = timm.data.resolve_model_data_config(model) transforms = timm.data.create_transform(**data_config, is_training=False) output = model(transforms(img).unsqueeze(0)) for o in output: print(o.shape)对一张 224×224 的输入,它返回5 个不同分辨率的特征图列表:
| 特征图 | 形状示例 | 语义 |
|---|---|---|
| 第 1 层 | (1, 32, 112, 112) | 分辨率最高、信息最细 |
| 第 2 层 | (1, 40, 56, 56) | 浅层语义 |
| 第 3 层 | (1, 56, 28, 28) | 中层语义 |
| 第 4 层 | (1, 160, 14, 14) | 深层语义 |
| 第 5 层 | (1, 264, 7, 7) | 最抽象、通道数最多 |
这些多尺度特征图可以直接接分割头、检测头,作为轻量级 backbone 复用,官方示例见 README.md 的 Feature Map Extraction 小节。
用法三:图像 Embeddings(向量表示)🧬
第三种用法是把一张图「压缩」成一个 1536 维向量,用于图像检索、相似度计算、聚类或作为微调起点。官方给出了两种等价写法:
写法 A:创建模型时去掉分类头
model = timm.create_model( 'tf_mixnet_l.in1k', pretrained=True, num_classes=0, # 移除分类器 nn.Linear ) output = model(transforms(img).unsqueeze(0)) # (1, 1536)写法 B:保留默认模型,手动分两段调用
output = model.forward_features(transforms(img).unsqueeze(0)) # (1, 1536, 7, 7) output = model.forward_head(output, pre_logits=True) # (1, 1536)要点提示:
num_classes=0只是「删掉最后的线性层」,前向结果与写法 B 完全一致;forward_features输出的是未池化的7×7 特征图,forward_head(pre_logits=True)再完成池化 + 归一化,得到最终 Embedding;- 得到的 1536 维向量可以直接算余弦相似度,实现「以图搜图」;完整示例见 README.md 的 Image Embeddings 小节。
config.json 关键配置解读 ⚙️
config.json 定义了模型架构tf_mixnet_l与预训练配置pretrained_cfg,几个字段值得注意:
| 字段 | 值 | 含义 |
|---|---|---|
num_classes | 1000 | ImageNet-1k 类别数 |
num_features | 1536 | Embedding / 分类前特征维度 |
input_size | [3, 224, 224] | 输入为 224×224 三通道图像 |
mean/std | 0.485/0.456/0.406 等 | 与 ImageNet 一致的 RGB 归一化参数 |
crop_pct/crop_mode | 0.875 / center | 推理时中心裁剪 87.5% 比例 |
interpolation | bicubic | 缩放采用双三次插值 |
pool_size | [7, 7] | 特征图池化到 7×7 后全局池化 |
first_conv/classifier | conv_stem / classifier | 用于微调时定位首层卷积与分类头 |
这些参数正是
timm.data.resolve_model_data_config会自动读取并应用的来源——这也是官方反复强调「用 timm 工具链生成 transforms」的原因。
3 种用法怎么选?🧭
| 你的需求 | 选哪个 | 关键参数 |
|---|---|---|
| 判断图片属于哪类(Top-K 分类) | 图像分类 | 默认加载,输出 1000 维 logits |
| 做分割 / 检测,需要多尺度特征 | 特征图提取 | features_only=True |
| 图像检索 / 相似度 / 微调特征 | 图像 Embeddings | num_classes=0或forward_head(pre_logits=True) |
一句话总结:分类看 logits、下游任务要特征图、检索聚类取 1536 维向量,三种模式共享同一份预训练权重,切换成本几乎为零。模型基于 apache-2.0 协议发布,可放心用于学习与商业场景;引用时请参考 README.md 中的 MixConv 与 timm 两条 BibTeX。
【免费下载链接】tf_mixnet_l.in1k
相关推荐
maxvit_base_tf_384.in21k_ft_in1k 的 3 大核心用法详解:图像分类、特征图提取与图像嵌入实战
maxvit_base_tf_384.in21k_ft_in1k 的 3 大核心用法详解:图像分类、特征图提取与图像嵌入实战 maxvit_base_tf_38
quip-miner v0.3 架构解析:quip 网络的五道接缝与工作生命周期
quip miner v0.3 架构解析:quip 网络的五道接缝与工作生命周期 本篇文章基于仓库根目录的 ARCHITECTURE.md https://li
时间序列到图像转换:5种创新分类方法完全指南
时间序列到图像转换:5种创新分类方法完全指南 时间序列到图像转换是一项革命性的技术突破,让传统的时间序列分析焕发新生!通过tsai库提供的强大转换工具,您可以将
深度学习机器学习人工智能
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考