您现在的位置是:首页 >学无止境 >深度学习-经典神经网络网站首页学无止境

深度学习-经典神经网络

咕噜噜鲁 2025-05-23 12:01:02
简介深度学习-经典神经网络

ALexNet

结构图

在这里插入图片描述
在这里插入图片描述

代码

import torch
import torch.nn as nn
import numpy as np

class myModule(nn.Module):
    def __init__(self,num_class):
        super().__init__()
        self.cn1 = nn.Conv2d(3,64,11,4,2)
        self.p1 = nn.MaxPool2d(3,2)

        self.cn2 = nn.Conv2d(64,192,5,1,2)
        self.p2 = nn.MaxPool2d(3,2)

        self.cn3 = nn.Conv2d(192,384,3,1,1)
        self.cn4 = nn.Conv2d(384,256,3,1,1)
        self.cn5 = nn.Conv2d(256,256,3,1,1)

        self.p3 = nn.MaxPool2d(3,2)
        self.p4 = nn.AdaptiveAvgPool2d(6)

        self.fla = nn.Flatten()

        self.l1 = nn.Linear(9216,4096)
        self.l2 = nn.Linear(4096,4096)
        self.l3 = nn.Linear(4096,num_class)

    def forward(self , x):
        x = self.cn1(x)
        x = self.p1(x)

        x= self.cn2(x)
        x = self.p2(x)

        x = self.cn3(x)
        x = self.cn4(x)
        x = self.cn5(x)

        x = self.p3(x)
        x = self.p4(x)

        x = self.fla(x)

        x = self.l1(x)
        x = self.l2(x)
        x = self.l3(x)

        return x


temp = torch.zeros((4,3,244,244))
model = myModule(1000)
out = model(temp)
print(out.size())
print(out)

VGG13

结构图

在这里插入图片描述
g

代码

import torch
import torch.nn as nn

class vggLayer(nn.Module):
    def __init__(self,inChannel,midChannel,outChannel):
        super().__init__()
        self.cn1 = nn.Conv2d(in_channels=inChannel,out_channels=midChannel,kernel_size=3,stride=1,padding=1)
        self.cn2 = nn.Conv2d(midChannel,outChannel,3,1,1)
        self.p1 = nn.MaxPool2d(3,2)
    def forward(self,x):
        x = self.cn1(x)
        x = self.cn2(x)
        x = self.p1(x)
        return  x
class myModule(nn.Module):
    def __init__(self):
        super().__init__()
        self.layer1 = vggLayer(3,64,64)
        self.layer2 = vggLayer(64,128,128)
        self.layer3 = vggLayer(128,256,256)
        self.layer4 = vggLayer(256,512,512)
        self.layer5 = vggLayer(512,512,512)
        self.adapool = nn.AdaptiveAvgPool2d(7)
        self.fla = nn.Flatten()
        self.l1 = nn.Linear(25088,4096)
        self.l2 = nn.Linear(4096,4096)
        self.l3 = nn.Linear(4096,1000)
    def forward(self , x ):
        x = self.layer1(x)
        x = self.layer2(x)
        x = self.layer3(x)
        x = self.layer4(x )
        x = self.layer5(x)
        x = self.adapool(x)
        x = self.fla(x)
        x =self.l1(x)
        x = self.l2(x)
        x =self.l3(x)
        return x

temp = torch.zeros((4,3,244,244))
model =myModule()
out = model(temp)
print(out.size())
print(out)
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。