郴州网站建设公司在哪里,网站开发软件科技公司,亚马逊超级浏览器,安阳实力网站建设首选目录 1.CA注意力机制
2.YOLOv5添加注意力机制
送书活动 1.CA注意力机制
CA#xff08;Coordinate Attention#xff09;注意力机制是一种用于加强深度学习模型对输入数据的空间结构理解的注意力机制。CA 注意力机制的核心思想是引入坐标信息#xff0c;以便模型可以更好地…目录 1.CA注意力机制
2.YOLOv5添加注意力机制
送书活动 1.CA注意力机制
CACoordinate Attention注意力机制是一种用于加强深度学习模型对输入数据的空间结构理解的注意力机制。CA 注意力机制的核心思想是引入坐标信息以便模型可以更好地理解不同位置之间的关系。如下图 1. 输入特征 CA 注意力机制的输入通常是一个特征图它通常是卷积神经网络CNN中的某一层的输出具有以下形状[C, H, W]其中
C 是通道数表示特征图中的不同特征通道。H 是高度表示特征图的垂直维度。W 是宽度表示特征图的水平维度。
2. 全局平均池化 CA 注意力机制首先对输入特征图进行两次全局平均池化一次在宽度方向上一次在高度方向上。这两次操作分别得到两个特征映射
在宽度方向上的平均池化得到特征映射 [C, H, 1]。在高度方向上的平均池化得到特征映射 [C, 1, W]。
这两个特征映射分别捕捉了在宽度和高度方向上的全局特征。
3. 合并宽高特征 将上述两个特征映射合并通常通过简单的堆叠操作得到一个新的特征层形状为 [C, 1, H W]其中 H W 表示在宽度和高度两个方向上的维度合并在一起。
4. 卷积标准化激活函数 对合并后的特征层进行卷积操作通常是 1x1 卷积以捕捉宽度和高度维度之间的关系。然后通常会应用标准化如批量标准化和激活函数如ReLU来进一步处理特征得到一个更加丰富的表示。
5. 再次分开 分别从上述特征层中分离出宽度和高度方向的特征
一个分支得到特征层 [C, 1, H]。另一个分支得到特征层 [C, 1, W]。
6. 转置 对分开的两个特征层进行转置操作以恢复宽度和高度的维度得到两个特征层分别为 [C, H, 1] 和 [C, 1, W]。
7. 通道调整和 Sigmoid 对两个分开的特征层分别应用 1x1 卷积以调整通道数使其适应注意力计算。然后应用 Sigmoid 激活函数得到在宽度和高度维度上的注意力分数。这些分数用于指示不同位置的重要性。
8. 应用注意力 将原始输入特征图与宽度和高度方向上的注意力分数相乘得到 CA 注意力机制的输出。 2.YOLOv5添加注意力机制
在models/common.py文件中增加以下模块
import torch
import torch.nn as nn
import torch.nn.functional as Fclass h_sigmoid(nn.Module):def __init__(self, inplaceTrue):super(h_sigmoid, self).__init__()self.relu nn.ReLU6(inplaceinplace)def forward(self, x):return self.relu(x 3) / 6class h_swish(nn.Module):def __init__(self, inplaceTrue):super(h_swish, self).__init__()self.sigmoid h_sigmoid(inplaceinplace)def forward(self, x):return x * self.sigmoid(x)class CoordAtt(nn.Module):def __init__(self, inp, reduction32):super(CoordAtt, self).__init__()self.pool_h nn.AdaptiveAvgPool2d((None, 1))self.pool_w nn.AdaptiveAvgPool2d((1, None))mip max(8, inp // reduction)self.conv1 nn.Conv2d(inp, mip, kernel_size1, stride1, padding0)self.bn1 nn.BatchNorm2d(mip)self.act h_swish()self.conv_h nn.Conv2d(mip, inp, kernel_size1, stride1, padding0)self.conv_w nn.Conv2d(mip, inp, kernel_size1, stride1, padding0)def forward(self, x):identity xn, c, h, w x.size()x_h self.pool_h(x)x_w self.pool_w(x).permute(0, 1, 3, 2)y torch.cat([x_h, x_w], dim2)y self.conv1(y)y self.bn1(y)y self.act(y)x_h, x_w torch.split(y, [h, w], dim2)x_w x_w.permute(0, 1, 3, 2)a_h self.conv_h(x_h).sigmoid()a_w self.conv_w(x_w).sigmoid()out identity * a_w * a_hreturn out
在models/yolo.py文件下里的parse_model函数将类名加入进去如下图 创建添加CA模块的YOLOv5的yaml配置文件如下
# YOLOv5 by Ultralytics, AGPL-3.0 license# Parameters
nc: 80 # number of classes
depth_multiple: 0.33 # model depth multiple
width_multiple: 0.50 # layer channel multiple
anchors:- [10,13, 16,30, 33,23] # P3/8- [30,61, 62,45, 59,119] # P4/16- [116,90, 156,198, 373,326] # P5/32# YOLOv5 v6.0 backbone
backbone:# [from, number, module, args][[-1, 1, Focus, [64, 6, 2, 2]], # 0-P1/2[-1, 1, Conv, [128, 3, 2]], # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]], # 3-P3/8[-1, 6, C3, [256]],[-1, 1, CoordAtt, []],[-1, 1, Conv, [512, 3, 2]], # 6-P4/16[-1, 9, C3, [512]],[-1, 1, CoordAtt, []],[-1, 1, Conv, [1024, 3, 2]], # 9-P5/32[-1, 3, C3, [1024]],[-1, 1, CoordAtt, []],[-1, 1, SPPF, [1024, 5]], # 12]# YOLOv5 v6.0 head
head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 8], 1, Concat, [1]], # cat backbone P4[-1, 3, C3, [512, False]], # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 5], 1, Concat, [1]], # cat backbone P3[-1, 3, C3, [256, False]], # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 17], 1, Concat, [1]], # cat head P4[-1, 3, C3, [512, False]], # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 13], 1, Concat, [1]], # cat head P5[-1, 3, C3, [1024, False]], # 23 (P5/32-large)[[20, 23, 26], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)]送书活动
用ChatGPT轻松玩转机器学习与深度学习 突破传统学习束缚借助ChatGPT的神奇力量解锁AI无限可能 关键点
1利用ChatGPT轻松理解机器学习和深度学习的概念和技术。
2提供实用经验和技巧更好地掌握机器学习和深度学习的基本原理和方法。
3系统全面、易于理解不需要过多的数学背景只需掌握基本的编程知识即可上手。 内容简介
随着机器学习和深度学习技术的不断发展和进步它们的复杂性也在不断增强。对于初学者来说学习这两个领域可能会遇到许多难题和挑战如理论知识的缺乏、数据处理的困难、算法选择的不确定性等。此时ChatGPT可以提供强有力的帮助。利用ChatGPT读者可以更轻松地理解机器学习和深度学习的概念和技术并解决学习过程中遇到的各种问题和疑惑。此外ChatGPT还可以为读者提供更多的实用经验和技巧帮助他们更好地掌握机器学习和深度学习的基本原理和方法。本书主要内容包括探索性数据分析、有监督学习线性回归、SVM、决策树等、无监督学习降维、聚类等以及深度学习的基础原理和应用等。
本书旨在为广大读者提供一个系统全面、易于理解的机器学习和深度学习入门教程。不需要过多的数学背景只需掌握基本的编程知识即可轻松上手。
作者简介
段小手曾供职于百度、敦煌网、慧聪网、方正集团等知名IT企业。有多年的科技项目管理及开发经验。负责的项目曾获得“国家发改委电子商务示范项目”“中关村现代服务业试点项目”“北京市信息化基础设施提升专项”“北京市外贸公共服务平台”等多项政策支持。著有《深入浅出Python机器学习》《深入浅出Python量化交易实战》等著作在与云南省公安厅合作期间使用机器学习算法有效将某类案件发案率大幅降低。 当当网链接《用ChatGPT轻松玩转机器学习与深度学习 突破传统学习束缚借助ChatGPT的神奇力量解锁AI无限可能 段小手》(段小手)【简介_书评_在线阅读】 - 当当图书
京东的链接京东安全 关注博主、点赞、收藏、 评论区评论 “ 人生苦短我爱python” 即可参与送书活动