• AlexNet网络的搭建


    AlexNet网络解析

    亮点

    1. 首次引入GPU进行网络加速训练,其中,下图是使用了两块GPU进行训练

      image-20220902171658748

    2. 使用了ReLU激活函数

    3. 全连接层的前两层使用了Dropout随机失活神经元的操作,减少过拟合

    网络结构

    深度学习卷积神经网络-AlexNet

    经卷积后矩阵尺寸大小计算公式为:

    N = (W-F+P1+P2)/S+1

    W-输入图片的大小W*W;F-卷积核大小FxF;

    P1:图片上方padding的个数;P2:图片下方padding的个数;S:步长

    Conv1

    输入:(3,224,224)

    W=224,F=11,P=[1,2],S=4,N=(224-11+1+2)/4+1=55

    输出:(96,55,55)

    Maxpool1

    输入:(96,55,55)

    W=55,F=3,P=[0,0],S=2,N=(55-3)/2+1=27

    输出:(96,27,27)

    Conv2

    输入:(96,27,27)

    W=27,F=5,P=[2,2],S=1,N=(27-5+4)/1+1=27

    输出:(256,27,27)

    Maxpool2

    输入:(256,27,27)

    W=27,F=3,P=[0,0],S=2,N=(27-3)/2+1=13

    输出:(256,13,13)

    Conv3

    输入:(256,13,13)

    W=13,F=3,P=[1,1],S=1,N=(13-3+1+1)/1+1=13

    输出:(384,13,13)

    Conv4

    输入:(384,13,13)

    W=13,F=3,P=[1,1],S=1,N=(13-3+1+1)/1+1=13

    输出:(384,13,13)

    Conv5

    输入:(384,13,13)

    W=13,F=3,P=[1,1],S=1,N=(13-3+1+1)/1+1=13

    输出:(256,13,13)

    代码复现

    class AlexNet(nn.Module):
        def __init__(self,num_classes=1000,init_weights=False):
            super(AlexNet, self).__init__()
            # nn.Sequential         简化步骤
            self.features = nn.Sequential(
                # 特征提取层
                # Input[3,224,224]    output[48,55,55]
                nn.Conv2d(3,48,kernel_size=11,stride=4,padding=2),
                nn.ReLU(inplace=True),
                nn.MaxPool2d(kernel_size=3,stride=2),
                nn.Conv2d(48,128,kernel_size=5,padding=2),
                nn.ReLU(inplace=True),
                nn.MaxPool2d(kernel_size=3,stride=2),
                nn.Conv2d(128,192,kernel_size=3,padding=1),
                nn.ReLU(inplace=True),
                nn.Conv2d(192, 192, kernel_size=3, padding=1),
                nn.ReLU(inplace=True),
                nn.Conv2d(192, 128, kernel_size=3, padding=1),
                nn.ReLU(inplace=True),
                nn.MaxPool2d(kernel_size=3, stride=2),
            )
    
            self.classifier = nn.Sequential(
                # 全连接层
                nn.Dropout(p=0.5),  # p:神经元随机失活的比例
                nn.Linear(128*6*6,2048),
                nn.ReLU(inplace=True),
                nn.Dropout(p=0.5),
                nn.Linear(2048,2048),
                nn.ReLU(inplace=True),
                nn.Linear(2048,num_classes)  # num_classes:分类的类别数
            )
    
            if init_weights:
                self._initialize_weights()
    
        def forward(self,x):
            x = self.features(x)
            x = torch.flatten(x,start_dim=1)
            x = self.classifier(x)
            return x
    
        # 初始化权重
        def _initialize_weights(self):
            # 遍历整个modules
            for m in self.modules():
                # 发现有nn.Conv2d这个结构
                if isinstance(m,nn.Conv2d):
                    # 凯明初始化权重
                    nn.init.kaiming_normal_(m.weight,mode='fan_out', nonlinearity='relu')
                    if m.bias is not None:
                        nn.init.constant_(m.bias,0)
                # 发现有nn.Linear,则使用正态分布初始化函数
                elif isinstance(m,nn.Linear):
                    nn.init.normal_(m.weight,0,0.01)
                    nn.init.constant_(m.bias,0)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
  • 相关阅读:
    【毕业设计】天气数据分析系统 - python 大数据
    云数据库与Mysq连接超详细版+报错解决方案+团队使用
    综合布线系统可由以下子系统组成
    【AI视野·今日NLP 自然语言处理论文速览 第七十九期】Thu, 18 Jan 2024
    Python OpenCV通过灰度平均值进行二值化处理以减少像素误差
    webservice初探
    活动回顾|8月中文社区面对面
    聚观早报 | OPPO Find N3首发;AI带来新红利
    uni-app中拦截webview窗口的URL请求
    Java的基础知识
  • 原文地址:https://blog.csdn.net/henghuizan2771/article/details/126669343