深度学习网络中backbone和feature map的含义

本文解释了在计算机视觉任务中backbone的概念及其重要性,并详细介绍了卷积神经网络中的featuremap是如何产生的。
部署运行你感兴趣的模型镜像

backbone这个单词原意指的是人的脊梁骨,后来引申为支柱,核心的意思。

在神经网络中,尤其是CV领域,一般先对图像进行特征提取(常见的有vggnet,resnet,谷歌的inception),这一部分是整个CV任务的根基,因为后续的下游任务都是基于提取出来的图像特征去做文章(比如分类,生成等等)。

所以将这一部分网络结构称为backbone十分形象,仿佛是一个人站起来的支柱。

卷积神经网络中feature map的含义
在每个卷积层,数据都是以三维形式存在的。你可以把它看成许多个二维图片叠在一起,其中每一个称为一个feature map。在输入层,如果是灰度图片,那就只有一个feature map;如果是彩色图片,一般就是3个feature map(红绿蓝)。层与层之间会有若干个卷积核(kernel),上一层和每个feature map跟每个卷积核做卷积,都会产生下一层的一个feature map。

摘录别人的我只是个没用的学习工具人而已

您可能感兴趣的与本文相关的镜像

PyTorch 2.9

PyTorch 2.9

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

### 深度学习架构中的层次及其功能 #### Arch 层的作用与联系 Arch 层通常指的是整个网络结构的设计理念框架。这一层定义了模型的整体布局,包括如何组合不同的子模块来完成特定的任务。例如,在目标检测任务中,arch 可能会规定采用两阶段还是单阶段的方法;对于图像分类,则可能指定了残差连接的数量以及卷积核大小等超参数设置[^1]。 #### Backbone 层的作用与联系 Backbone 是深度神经网络的核心部分之一,负责提取输入数据的基础特征表示。常见的 backbones 如 ResNet、VGG 或者 EfficientNet 系列都是通过堆叠多个卷积操作来逐步捕捉不同尺度下的空间信息。这些基础特征图将被传递给后续处理单元用于更复杂的计算,比如语义分割或物体定位等高级任务。在提到的 R_50_FPN 架构里,ResNet-50 就充当着 backbone 的角色。 ```python import torchvision.models as models resnet50 = models.resnet50(pretrained=True) print(resnet50) # 输出 resnet50 结构 ``` #### FPN (Feature Pyramid Network) 层的作用与联系 FPN 主要解决多尺度目标检测问题,其工作原理是在原有 feature maps 上构建一个多级联金字塔形结构。具体来说就是利用自底向上的路径增强低分辨率 map 中的信息量,并结合来自高层较粗粒度但富含上下文线索的特点形成新的 multi-level features。这样做的好处是可以更好地适应各种尺寸的目标识别需求。文中提及到 maskrcnn-benchmark 使用的就是这种技术实现更好的区域提议生成效果。 ```python from detectron2.modeling.backbone import build_resnet_backbone, FPNStructure backbone = build_resnet_backbone(cfg=None, input_shape=(3, 224, 224)) fpn_structure = FPNStructure(bottom_up=backbone, in_features=['res2', 'res3', 'res4', 'res5']) output = fpn_structure(torch.randn(1, 3, 800, 800)) # 假设输入图片大小为 800x800 for k, v in output.items(): print(f"{k}: {v.shape}") ``` #### Head 层的作用与联系 Head 部分位于整个 pipeline 的末端位置,专门用来执行具体的预测任务。根据不同应用场景可以分为多种类型:如分类头(Classification Head),回归头(Box Regression Head),关键点估计(KP Estimation Head)等等。每种 head 设计都紧密围绕着最终输出的需求展开设计。例如 Mask R-CNN 中就包含了 box prediction segmentation mask generation 这两个 heads 来分别完成边界框绘制及实例掩码创建的工作。 ```python class KeypointPostProcessor(nn.Module): def forward(self, x): pass # 实现细节省略 keypoint_post_processor = KeypointPostProcessor() outputs = keypoint_post_processor(x) # 输入由前面 layers 提供的结果 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值