文章目录
- 多头自注意力介绍
- 原理
- 特点
- yolov8增加MultiHeadSelfAttention具体步骤
- 融合新模块代码
- (1)在_init_.py+__conv.py文件的__all__内添加‘MultiHeadSelfAttention’
- (2)conv.py文件复制粘贴新模块代码
- MultiHeadSelfAttention
- FasterNetBlock
- FasterNetBlockWithSelfAttention
- 代码功能概述
- (3)修改task.py文件
- yolov8.yaml文件增加MultiHeadSelfAttention
- yolov8.yaml
- yolov8.yaml引入多头注意力机制
- 将 MultiHeadSelfAttention引入 YOLOv8 的好处
- 增强特征提取能力
- 提升模型表达能力
- 优化多尺度特征融合
- 更好地利用上下文信息
- 提高模型泛化能力
从网上所搜以及
chatgpt
生成的多头自注意力代码不全或者没有提供
yolo
的
yaml
文件引用的具体使用方式,本文给出正确完整的多头自注意力代码,同时与
FasterNet
模块结合成新的模块并进行完整的
yolov8
代码运行引入介绍。
多头自注意力介绍
原理
多头自注意力(Multi - Head Self - Attention)
是 Transformer
架构中的核心组件,它在自然语言处理、计算机视觉等众多领域都有广泛应用。下面从基本概念、原理、计算步骤、优势几个方面详细介绍多头自注意力机制。
基本概念
自注意力:自注意力机制允许模型在处理序列中的每个元素时,关注序列中其他元素的信息,从而捕捉序列内的依赖关系。例如在自然语言处理中,一个单词可以根据句子中其他单词的信息来调整自己的表示。
多头:多头自注意力是对自注意力机制的扩展,它通过多个不同的 “头” 并行地计算自注意力,每个头可以学习到序列中不同方面的依赖关系,最后将各个头的结果拼接并进行线性变换得到最终输出。
原理
多头自注意力机制的核心是将输入的查询(Query)<