小白解说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