ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

tf_efficientnet_b3.ap_in1k特征图提取指南:输出5层多尺度特征,打造分割与检测的万能Backbone

tf_efficientnet_b3.ap_in1k特征图提取指南:输出5层多尺度特征,打造分割与检测的万能Backbone

【免费下载链接】tf_efficientnet_b3.ap_in1k

项目地址:https://ai.gitcode.com/hf_mirrors/timm/tf_efficientnet_b3.ap_in1k
点击查看免费下载

tf_efficientnet_b3.ap_in1k是来自 timm 库、基于 ImageNet-1k 对抗训练(AdvProp)预训练的高效特征提取模型。只需一个参数features_only=True,它就能直接输出5 层多尺度特征图(24~384 通道),可直接作为图像分割、目标检测任务的通用 Backbone,无需修改网络结构。

🧐 它是什么模型?

tf_efficientnet_b3.ap_in1k 是 EfficientNet-B3 的 PyTorch 移植版本,原始权重由论文作者使用 TensorFlow 在 ImageNet-1k 上通过对抗训练(AdvProp)获得,再移植为 PyTorch 供 timm 使用。核心参数一览:

属性数值说明
参数量12.2 M轻量级,显存友好
计算量1.9 GMACs推理速度快
输入尺寸300 × 300推荐输入分辨率
预训练任务ImageNet-1k 分类1000 类,对抗样本增强训练
框架PyTorchtimm 生态

模型规格详见 README.md 与 config.json。

⚡ 5 层多尺度特征一图看懂

将模型切换为特征提取模式后,前向输出是一个包含 5 个特征图的列表(以 300×300 输入为例):

# 输出示例(来自 README 官方示例) torch.Size([1, 24, 150, 150]) # 第1层 torch.Size([1, 32, 75, 75]) # 第2层 torch.Size([1, 48, 38, 38]) # 第3层 torch.Size([1, 136, 19, 19]) # 第4层 torch.Size([1, 384, 10, 10]) # 第5层
特征层通道数空间尺寸近似步长典型用途
C124150×1502高分辨率细节、边缘信息
C23275×754中小目标、浅层纹理
C34838×388FPN 常用起点
C413619×1916中目标、语义信息
C538410×1032强语义、全局上下文

这套步长 2 / 4 / 8 / 16 / 32的金字塔结构,恰好就是 FPN(Feature Pyramid Network)所需的多尺度输入,因此 Mask R-CNN、DETR 的 backbone、U-Net 分割网络等都能直接接上,几乎零适配成本。

🚀 三步提取特征图

import timm model = timm.create_model( 'tf_efficientnet_b3.ap_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) features = model(transforms(img).unsqueeze(0)) # 得到 5 层特征图

完整可运行示例见 README.md 的 Feature Map Extraction 小节。

🎯 另外两种常见用法

1. 图像分类:不加参数直接创建模型,输出 1000 类概率。

2. 图像向量(Embedding):设置num_classes=0去掉分类层;或者分两步走——先model.forward_features(x)得到未池化的 (1, 1536, 10, 10) 张量,再model.forward_head(..., pre_logits=True)得到最终特征向量,适合做图像检索与聚类。

模型在 config.json 中记录了num_features: 1536、输入尺寸、归一化参数等元信息,可用于校验加载的权重。

📁 仓库里都有什么

文件说明
README.md模型卡片:用法示例、模型参数、论文引用
config.jsontimm 权重配置:架构名、预训练 tag(ap_in1k)、归一化参数
configuration.json框架与任务声明(pytorch / image-classification)
model.safetensorsPyTorch 权重(safetensors 格式)
pytorch_model.binPyTorch 权重(pickle 格式)

权重文件通过 Git LFS 管理,规则见 .gitattributes,克隆后需要拉取 LFS 文件才能拿到完整模型。

⚙️ 常用参数速查表

参数作用
pretrained=True加载 AdvProp 预训练权重
features_only=True输出 5 层多尺度特征图(本指南重点)
num_classes=0移除分类头,输出特征向量
forward_features()获取未池化主干输出 (1, 1536, 10, 10)
forward_head()对主干输出做池化 + 分类头前处理

💡 实战小贴士

  • 输入尺寸:推荐 300×300;分类验证时中心裁剪比例crop_pct: 0.904,归一化均值/方差均为 0.5,这些参数 config.json 已内置,用timm.data.create_transform会自动处理。
  • 搭配 FPN:建议取 C3~C5(48/136/384 通道)做分割或检测主干,C1/C2 仅在需要极高分辨率细节时使用。
  • 鲁棒性:AdvProp 对抗训练使模型对噪声和对抗扰动更鲁棒,在低质量图像(压缩图、弱光照)上通常比常规权重更稳定。
  • 轻量化部署:12.2M 参数量 + 1.9 GMACs 的规模,使其在手机端实时分割/检测场景中也是理想选择。

一句话总结:tf_efficientnet_b3.ap_in1k用一行features_only=True即可解锁 5 层多尺度特征,是分割与检测任务中性价比极高的现成 Backbone。

【免费下载链接】tf_efficientnet_b3.ap_in1k

项目地址:https://ai.gitcode.com/hf_mirrors/timm/tf_efficientnet_b3.ap_in1k
点击查看免费下载
上一篇:PyJWT高级特性:自定义头部、分离负载等终极指南
下一篇:FeHelper图像处理工具详解:二维码生成、截图、SVG转换等7大功能

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进