目前,设计更高效视觉Transformer的一个主要研究方向是通过采用稀疏注意力或使用局部注意力窗口来降低自我注意力模块的计算成本。相比之下,我们提出了一种不同的方法,旨在通过密集注意力模式来提高基于变换器的架构的性能。具体来说,我们为混合视觉转换器(FcaFormer)提出了前向交叉注意,即在同一阶段二次使用前一个区块的标记。为了实现这一目标,FcaFormer 利用了两个创新组件:可学习比例因子(LSFs)和标记合并与增强模块(TME)。LSFs 可以高效处理交叉令牌,而 TME 可以生成有代表性的交叉令牌。通过整合这些组件,拟议的 FcaFormer 增强了具有潜在不同语义的标记块之间的交互,并鼓励更多信息流向下层。基于前向交叉注意力(Fca),我们设计了一系列 FcaFormer 模型,在模型大小、计算成本、内存成本和准确性之间实现了最佳权衡。例如,无需通过知识蒸馏来加强训练,我们的FcaFormer就能在Imagenet上实现83.1%的top-1准确率,而且只需1630万个参数和约36亿个MAC。与经过提炼的 EfficientFormer 相比,这节省了近一半的参数和少量计算成本,同时还提高了 0.7% 的准确率。
FcaFormer模型的整体结构如下图:
在YOLOv5项目中添加模型作为Backbone使用的教程:
(1)将YOLOv5项目的models/yolo.py修改parse_model函数以及BaseModel的_forward_once函数
(2)在models/backbone(新建)文件下新建fcaformer.py,添加如下的代码:
(3)在models/yolo.py导入模型并在parse_model函数中修改如下(先导入文件):
(4)在model下面新建配置文件:yolov5_fcaformer.yaml
(5)运行验证:在models/yolo.py文件指定–cfg参数为新建的yolov5_fcaformer.yaml