小白解说SqueezeNet的Model部分

小白解说SqueezeNet的Model部分

源码全部

import torch
import torch.nn as nn
from torch.autograd import Variable
import torch.functional as F
import numpy as np
import torch.optim as optim
import math
class fire(nn.Module):
    def __init__(self, inplanes,squeeze_planes, expand_planes):
        super(fire,self).__init__()
        self.conv1= nn.Conv2d(inplanes,squeeze_planes, kernel_size=1,stride=1)
        self.bn1=nn.BatchNorm2d(squeeze_planes)
        self.relu1=nn.ReLU(inplanes = True)

        self.conv2 = nn.Conv2d(squeeze_planes,expand_planes,kernel_size=1,stride=1)
        self.bn2=nn.BatchNorm2d(expand_planes)

        self.conv3 = nn.Conv2d(squeeze_planes, expand_planes, kernel_size=1, stride=1, padding=1)

        self.bn3=nn.BatchNorm2d(expand_planes)
        self.relu2 = nn.ReLU(inplanes=True)

        #using MSR
        for m in self.modules():
            if isinstance((m, nn.Conv2d)):
                n= m.kernel_size[0] * m.kernel_size[1]* m.in_channel

猜你喜欢

转载自blog.csdn.net/keny88888/article/details/106792161