
3行代码用上FcaNet预训练模型torch.hub快速体验ImageNet 80% Top-1的频率通道注意力网络【免费下载链接】FcaNetFcaNet: Frequency Channel Attention Networks项目地址: https://gitcode.com/gh_mirrors/fc/FcaNetFcaNetFrequency Channel Attention Networks频率通道注意力网络是构建在经典 ResNet 之上的视觉骨干网络它在卷积块中引入基于 DCT 频率基的通道注意力机制FcaNet152 在 ImageNet 数据集上取得了 80.02% 的 Top-1 准确率。无需编译、无需配置环境通过 torch.hub 只需 3 行代码即可加载官方预训练模型开始推理让新手也能快速体验频率通道注意力网络的强大性能。 FcaNet 是什么一图看懂频率通道注意力FcaNet 的核心思想可以概括为一句话把 ResNet 里全局平均池化生成通道权重的做法换成用不同频率的 DCT 基对特征图做加权求和让网络能够同时关注低频整体轮廓和高频边缘纹理信息再经由一个 FC 层生成通道注意力权重对特征进行缩放。从上图可以看到整个频率通道注意力模块的工作流程Split通道分组把输入特征图的 C 个通道均匀拆分成 n 组DCT 频率基匹配每组通道绑定一个不同频率的 DCT 基DCT⁰ 低频 → DCTⁿ⁻¹ 高频加权求和 FC特征与频率基逐元素相乘后求和得到 n 个频率分量经 FC 层输出 C 个通道的注意力权重Scale缩放权重与原始特征相乘完成通道注意力。这个机制被插入到 ResNet 的每个残差块中实现如下代码所示注意力核心层MultiSpectralAttentionLayermodel/layer.py集成注意力模块的残差块FcaBottleneck/FcaBasicBlockmodel/fcanet.py 一个反直觉的结论作者在实验中发现固定不可学习的 DCT 基比可学习的张量效果更好78.57% vs 78.35%见 README.md 的对比表。这相当于免费的先验——DCT 本身就是一种优秀的频率分解方式不需要额外学习。 FcaNet预训练模型快速上手3行代码开始推理FcaNet 提供了torch.hub入口文件 hubconf.py定义了fca34、fca50、fca101、fca152四个预训练入口依赖仅 PyTorch 一个库。以下就是最简用法import torch model torch.hub.load(cfzd/FcaNet, fca50, pretrainedTrue) model.eval() # 进入推理模式想对一张图片完整跑一遍推理只需加上数据预处理与标准 ImageNet 预处理一致from PIL import Image from torchvision import transforms img Image.open(demo.jpg).convert(RGB) input_tensor transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]), ])(img).unsqueeze(0) with torch.no_grad(): print(model(input_tensor).argmax(dim1)) # 预测类别首次运行时会自动下载预训练权重之后即可离线使用。 FcaNet模型选择指南ImageNet精度对照表FcaNet 家族覆盖 4 种规格全部在 ImageNet 上预训练1000 类。新手建议从fca50开始精度与速度平衡最佳追求极致精度选fca152模型报告精度 (Top-1)实测精度 (Top-1)特点FcaNet3475.07%75.02%轻量推理最快FcaNet5078.52%78.57%精度/速度均衡推荐FcaNet10179.64%79.63%高精度FcaNet15280.08%80.02%ImageNet 第一梯队精度注由于 FP16 训练与 FP32 权重的转换实测与论文报告存在 ±0.06% 内的微小差异属正常现象。 FcaNet 不止分类目标检测与实例分割项目内直接内置了 mmdetection官方已提供基于 FcaNet 骨干的 COCO 目标检测与实例分割预训练模型开箱即用检测器骨干APAP50AP75Faster RCNNFcaNet5039.061.142.3Faster RCNNFcaNet10141.263.344.6Mask RCNNFcaNet50检测分割40.3 / 36.262.0 / 58.644.1 / 38.1FcaNet 骨干的检测效果边界框标注示例对应的输入原图可复制 mmdetection/demo/demo.jpg 体验官方 demo预训练检测模型配置mmdetection/configs/faster_rcnn/faster_rcnn_freqnet50_fpn_1x_coco.py、mmdetection/configs/mask_rcnn/mask_rcnn_freqnet50_fpn_1x_coco.py基础模型定义mmdetection/configs/base/models/faster_rcnn_r50_fpn_freqnet.pymmdetection 数据处理流程参考mmdetection/docs/tutorials/data_pipeline.md数据流水线总览图⚙️ FcaNet本地部署与微调一键克隆完整安装如果想在自己的数据集上微调 FcaNet分类任务只需两步克隆安装git clone https://gitcode.com/gh_mirrors/fc/FcaNet cd FcaNet pip install -r requirements.txt完整的安装说明含训练依赖 DALI、可选的 APEX 混合精度与 mmdetection 安装见 INSTALL.md。本地加载技巧克隆仓库后torch.hub可以切换为sourcelocal直接从本地加载免去网络下载model torch.hub.load(FcaNet, fca50, sourcelocal, pretrainedTrue)训练与评测分别由四个脚本一键启动分类训练launch_training_classification.sh分类评测launch_eval_classification.sh检测训练launch_training_detection.sh检测评测launch_eval_detection.sh主训练/推理入口为 main.py支持--arch fcanet50指定 FcaNet 架构、--pretrained加载预训练权重。❓ FcaNet 常见问题 FAQQ1为什么不直接用可学习的张量而要固定 DCT 基作者的实验给出的答案是固定 DCT 基更好78.57% vs 可学习随机初始化 77.91%。想自行验证的话切换 model/layer.py 中第 77-87 行的四种张量初始化方式全量训练即可复现。Q2torch.hub 加载失败怎么办先确认已安装 PyTorch依赖仅此一项见 hubconf.py若网络受限可先克隆仓库改用sourcelocal方式加载。Q3训练需要额外依赖吗正式训练需要安装 NVIDIA DALI 数据加载器按 CUDA 版本安装见 INSTALL.md仅推理则只需 PyTorch。 总结特性说明核心创新频率通道注意力固定 DCT 频率基替代全局平均池化快速上手torch.hub 3 行代码加载预训练模型分类精度FcaNet152 达 ImageNet 80.02% Top-1扩展能力内置 mmdetection支持 COCO 检测/实例分割依赖要求推理仅需 PyTorch轻量易用FcaNet 把频率域这一计算机视觉的经典思想以极低成本注入了 ResNet不增加可学习参数、不改变网络结构复杂度就能带来显著精度提升。无论你是想快速验证通道注意力的效果还是要为检测任务换一个更强的骨干网络3 行 torch.hub 代码就能立刻开始。【免费下载链接】FcaNetFcaNet: Frequency Channel Attention Networks项目地址: https://gitcode.com/gh_mirrors/fc/FcaNet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考