卷积神经网络:Inception Model的定义

import torch
import torch.nn as nn
import torch.nn.functional as F

class Inception(nn.Module):
    def __init__(self,in_channels):#输入通道数定为未知量,当实例化模型时可以调用
        super(Inception,self).__init__()
        self.branch11=nn.Conv2d(in_channels,16,kernel_size=1)  #1*1的卷积分支 C1=16 图片形状(h,w)未发生变化

        self.branch55_1=nn.Conv2d(in_channels,16,kernel_size=1)
        self.branch55_2=nn.Conv2d(16,24,kernel_size=5,padding=2) #5*5的卷积分支 C2=24 图片形状不发生变化

        self.branch33_1=nn.Conv2d(in_channels,16,kernel_size=1)
        self.branch33_2=nn.Conv2d(16,24,kernel_size=3,padding=1)
        self.branch33_3=nn.Conv2d(24,24,kernel_size=3,padding=1) #3*3的卷积分支 C3=24 图片形状不发生变化

        self.branch_pool=nn.Conv2d(in_channels,24,kernel_size=1) #1*1的池化分支 C4=24 图片形状不发生变化

    def forward(self,x):
        branch11=self.branch11(x)

        branch55=self.branch55_1(x)
        branch55=self.branch55_2(branch55)

        branch33=self.branch33_1(x)
        branch33=self.branch33_2(branch33)
        branch33=self.branch33_3(branch33)

        branch_pool=F.avg_pool2d(x,kernel_size=3,stride=1,padding=1)
        branch_pool=self.branch_pool(branch_pool)

        outputs=[branch11,branch33,branch55,branch_pool]

        return torch.cat(outputs,dim=1)  #dim=1,(BCHW)的第二个维度C上合并  其他维度的值必须相同

class Net(nn.Module):
    def __init__(self):
        super(Net,self).__init__()
        self.conv1=nn.Conv2d(1,10,kernel_size=5)
        self.conv2=nn.Conv2d(88,20,kernel_size=5) #将Inception沿着C维度拼接之后,通道总数未=88

        self.incep1=Inception(in_channels=10)
        self.incep2=Inception(in_channels=20)

        self.mp=nn.MaxPool2d(kernel_size=2)
        self.fc=nn.Linear(1408,10)              ###

    def forward(self,x):
        in_size=x.size(0)
        x=F.relu(self.mp(self.conv1(x))
        x=self.incep1(x)
        x=F.relu(self.mp(self.conv2(x)))
        x=self.incep2(x)
        x=x.view(in_size,-1)                    ###
        x=self.fc(x)                            ### 随机产生一个x 去掉这三行 输出x.size()
        return x

猜你喜欢

转载自blog.csdn.net/qq_21686871/article/details/114375548