查注册公司什么网站,宜宾网站开发,网站建设选题,做海报找素材的网站上一篇当中#xff0c;使用pytorch搭建了一个squeezenet#xff0c;效果还行。但是偶然间发现了一个稍微改动的版本#xff0c;拿来测试一下发现效果会更好#xff0c;大概网络结构还是没有变#xff0c;还是如下的第二个版本#xff1a; 具体看网络结构代码#xff1a…上一篇当中使用pytorch搭建了一个squeezenet效果还行。但是偶然间发现了一个稍微改动的版本拿来测试一下发现效果会更好大概网络结构还是没有变还是如下的第二个版本 具体看网络结构代码
import torch
import torch.nn as nnclass Fire(nn.Module):def __init__(self, in_channel, out_channel, squzee_channel):super().__init__()self.squeeze nn.Sequential(nn.Conv2d(in_channel, squzee_channel, 1),nn.BatchNorm2d(squzee_channel),nn.ReLU(inplaceTrue))self.expand_1x1 nn.Sequential(nn.Conv2d(squzee_channel, int(out_channel / 2), 1),nn.BatchNorm2d(int(out_channel / 2)),nn.ReLU(inplaceTrue))self.expand_3x3 nn.Sequential(nn.Conv2d(squzee_channel, int(out_channel / 2), 3, padding1),nn.BatchNorm2d(int(out_channel / 2)),nn.ReLU(inplaceTrue))def forward(self, x):x self.squeeze(x)x torch.cat([self.expand_1x1(x),self.expand_3x3(x)], 1)return xclass SqueezeNet(nn.Module):mobile net with simple bypassdef __init__(self, class_num100):super().__init__()self.stem nn.Sequential(nn.Conv2d(3, 96, 3, padding1),nn.BatchNorm2d(96),nn.ReLU(inplaceTrue),nn.MaxPool2d(2, 2))self.fire2 Fire(96, 128, 16)self.fire3 Fire(128, 128, 16)self.fire4 Fire(128, 256, 32)self.fire5 Fire(256, 256, 32)self.fire6 Fire(256, 384, 48)self.fire7 Fire(384, 384, 48)self.fire8 Fire(384, 512, 64)self.fire9 Fire(512, 512, 64)self.conv10 nn.Conv2d(512, class_num, 1)self.avg nn.AdaptiveAvgPool2d(1)self.maxpool nn.MaxPool2d(2, 2)def forward(self, x):x self.stem(x)f2 self.fire2(x)f3 self.fire3(f2) f2f4 self.fire4(f3)f4 self.maxpool(f4)f5 self.fire5(f4) f4f6 self.fire6(f5)f7 self.fire7(f6) f6f8 self.fire8(f7)f8 self.maxpool(f8)f9 self.fire9(f8)c10 self.conv10(f9)x self.avg(c10)# x x.view(x.size(0), -1)x torch.flatten(x, start_dim1)return xdef squeezenet(class_num100):return SqueezeNet(class_numclass_num)最大的变化就是在卷积层和relu激活层之间加了个bn层包括所有的fire结构内。其余就是卷积和池化的kernel_size或stride的微调包括最后去掉了dropout以及最后部分的网络结构也稍作调整 将这个网络结构与上一个的网络结构训练同一训练集得到的模型测试同一测试集发现这个模型的准确率会比上一个高几个点。而且上一个模型训练容易不稳定训练到一半直接梯度爆炸了需要不断调参也比较麻烦这个模型lr直接0.1或0.01都能训练很好所以个人更推荐这个网络模型。 下一篇编辑此网络结构的caffe版本。