【免费下载链接】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 类,对抗样本增强训练 |
| 框架 | PyTorch | timm 生态 |
模型规格详见 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层| 特征层 | 通道数 | 空间尺寸 | 近似步长 | 典型用途 |
|---|---|---|---|---|
| C1 | 24 | 150×150 | 2 | 高分辨率细节、边缘信息 |
| C2 | 32 | 75×75 | 4 | 中小目标、浅层纹理 |
| C3 | 48 | 38×38 | 8 | FPN 常用起点 |
| C4 | 136 | 19×19 | 16 | 中目标、语义信息 |
| C5 | 384 | 10×10 | 32 | 强语义、全局上下文 |
这套步长 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.json | timm 权重配置:架构名、预训练 tag(ap_in1k)、归一化参数 |
| configuration.json | 框架与任务声明(pytorch / image-classification) |
| model.safetensors | PyTorch 权重(safetensors 格式) |
| pytorch_model.bin | PyTorch 权重(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
相关推荐
tf_efficientnet_b1.ap_in1k 特征图提取指南:5 层多尺度 Feature Map 如何变身目标检测骨干网络
tf_efficientnet_b1.ap_in1k 特征图提取指南:5 层多尺度 Feature Map 如何变身目标检测骨干网络 tf_efficientn
特征提取实战:如何把 tiny_vit_21m_224.dist_in22k 当Backbone,提取4级多尺度特征图
特征提取实战:如何把 tiny_vit_21m_224.dist_in22k 当Backbone,提取4级多尺度特征图 tiny_vit_21m_224.dis
把mobilenetv4_conv_medium.e500_r224_in1k当特征 Backbone 用:features_only生成5级多尺度特征图的完整指南
把mobilenetv4_conv_medium.e500_r224_in1k当特征 Backbone 用:features_only生成5级多尺度特征图的完整
人工智能计算机视觉
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考