知识点回顾:
- 传统计算机视觉发展史:LeNet-->AlexNet-->VGGNet-->nceptionNet-->ResNet
- Inception模块和网络
- 特征融合方法阶段性总结:逐元素相加、逐元素相乘、concat通道数增加等
- 感受野与卷积核变体:深入理解不同模块和类的设计初衷
一、 Inception网络介绍
今天我们介绍Inception,也就是GoogleNet
Inception 网络,也被称为 GoogLeNet,是 Google 团队在 2014 年提出的经典卷积神经网络架构。它的核心设计理念是 “并行的多尺度融合”,通过在同一层网络中使用多个不同大小的卷积核(如 1x1、3x3、5x5)以及池化操作,从不同尺度提取图像特征,然后将这些特征进行融合,从而在不增加过多计算量的情况下,获得更丰富的特征表达。
Inception 模块是 Inception 网络的基本组成单元。
在同样的步长下,卷积核越小,下采样率越低,保留的图片像素越多;卷积核越大,越能捕捉像素周围的信息。
一个典型的 Inception 模块包含以下几个并行的分支:
- 1x1 卷积分支:用于降维,减少后续卷积操作的计算量,同时提取局部特征。(像素下采样率低,但是可以修改通道数)
- 3x3 卷积分支:捕捉中等尺度的特征。
- 5x5 卷积分支:捕捉较大尺度的特征。
- 池化分支:通常使用最大池化或平均池化,用于保留图像的全局信息。
二、 inception网络架构
2.1 定义inception模块
import torch
import torch.nn as nn
class Inception(nn.Module):
def __init__(self, in_channels):
"""
Inception模块初始化,实现多尺度特征并行提取与融合
参数:
in_channels: 输入特征图的通道数
"""
super(Inception, self).__init__()
# 1x1卷积分支:降维并提取通道间特征关系
# 减少后续卷积的计算量,同时保留局部特征信息
self.branch1x1 = nn.Sequential(
nn.Conv2d(in_channels, 64, kernel_size=1), # 降维至64通道
nn.ReLU() # 引入非线性激活
)
# 3x3卷积分支:通过1x1卷积降维后使用3x3卷积捕捉中等尺度特征
# 先降维减少计算量,再进行空间特征提取
se

最低0.47元/天 解锁文章
1124

被折叠的 条评论
为什么被折叠?



