当前位置: 首页 > news >正文

网站开发模块分类做网站的规范尺寸

网站开发模块分类,做网站的规范尺寸,有没有教做网站实例视频,网站seo优化怎么做模型介绍 GoogLeNet是谷歌工程师设计的深度神经网络结构#xff0c;于2014年在ImageNet比赛中取得了冠军。它的设计特点在于既有深度#xff0c;又在横向上拥有“宽度”#xff0c;并采用了一种名为Inception的核心子网络结构。这个网络名字中的“GoogLeNet”是对LeNet的致…模型介绍 GoogLeNet是谷歌工程师设计的深度神经网络结构于2014年在ImageNet比赛中取得了冠军。它的设计特点在于既有深度又在横向上拥有“宽度”并采用了一种名为Inception的核心子网络结构。这个网络名字中的“GoogLeNet”是对LeNet的致敬LeNet是早期由Yann LeCun设计的卷积神经网络。 论文地址https://arxiv.org/pdf/1409.4842.pdf 模型结构 左图(a)就是Inception模块的设计思想它的设计是通过并行使用多个卷积和池化操作来提取特征然后将这四个操作的输出进行通道维度的拼接这样获得的图像是经过不同核大小的卷积提取的特征有利于捕捉不同尺度的特征。 1x1卷积核用于学习通道间的线性关系和降维。3x3卷积核用于捕捉局部特征和空间相关性。5x5卷积核用于学习更大范围的特征。最大池化用于捕捉局部的空间不变性。 不过Inception的计算复杂度相对较高尤其是包含大尺寸卷积核的部分。并行使用了多个卷积和池化操作模块内的参数数量较大这可能导致过拟合尤其是在数据量有限的情况下。 为了减小参数量又使用像右图(b)所示的那样在每个3x3和5x5的卷积层之前增加1x1的卷积层来控制输出通道数在最大池化层后面增加1x1卷积层减小输出通道数。 代码实现 该网络的实现比较简单没有加辅助分类器。 import torch import torch.nn as nn__all__ [GoogLeNet]class Inception(nn.Module):def __init__(self, in_channels, ch1x1, ch3x3red, ch3x3, ch5x5red, ch5x5, pool_proj):super(Inception, self).__init__()self.branch1 self.BasicConv(in_channels, ch1x1, kernel_size1)self.branch2 nn.Sequential(self.BasicConv(in_channels, ch3x3red, kernel_size1),self.BasicConv(ch3x3red, ch3x3, kernel_size3, padding1))self.branch3 nn.Sequential(self.BasicConv(in_channels, ch5x5red, kernel_size1),self.BasicConv(ch5x5red, ch5x5, kernel_size3, padding1))self.branch4 nn.Sequential(nn.MaxPool2d(kernel_size3, stride1, padding1, ceil_modeTrue),self.BasicConv(in_channels, pool_proj, kernel_size1))def BasicConv(self, in_channels, out_channels, **kwargs):return nn.Sequential(nn.Conv2d(in_channels, out_channels, biasFalse, **kwargs),nn.BatchNorm2d(out_channels, eps0.001),nn.ReLU(inplaceTrue),)def forward(self, x):branch1 self.branch1(x)branch2 self.branch2(x)branch3 self.branch3(x)branch4 self.branch4(x)outputs [branch1, branch2, branch3, branch4]return torch.cat(outputs, dim1)class GoogLeNet(nn.Module):def __init__(self, num_classes1000, init_weightsFalse):super(GoogLeNet, self).__init__()# 可参考 https://arxiv.org/pdf/1409.4842.pdf 第七页结构图和第六页Table 1self.conv1 self.BasicConv(3, 64, kernel_size7, stride2, padding3)self.maxpool1 nn.MaxPool2d(3, stride2, ceil_modeTrue)self.conv2 self.BasicConv(64, 64, kernel_size1, stride1)self.conv3 self.BasicConv(64, 192, kernel_size3, padding1)self.maxpool2 nn.MaxPool2d(3, stride2, ceil_modeTrue)self.inception3a Inception(192, 64, 96, 128, 16, 32, 32)self.inception3b Inception(256, 128, 128, 192, 32, 96, 64)self.maxpool3 nn.MaxPool2d(3, stride2, ceil_modeTrue)self.inception4a Inception(480, 192, 96, 208, 16, 48, 64)self.inception4b Inception(512, 160, 112, 224, 24, 64, 64)self.inception4c Inception(512, 128, 128, 256, 24, 64, 64)self.inception4d Inception(512, 112, 144, 288, 32, 64, 64)self.inception4e Inception(528, 256, 160, 320, 32, 128, 128)self.maxpool4 nn.MaxPool2d(2, stride2, ceil_modeTrue)self.inception5a Inception(832, 256, 160, 320, 32, 128, 128)self.inception5b Inception(832, 384, 192, 384, 48, 128, 128)self.avgpool nn.AdaptiveAvgPool2d((1, 1))self.dropout nn.Dropout(0.2)self.fc nn.Linear(1024, num_classes)if init_weights:self._initialize_weights()def _initialize_weights(self):for m in self.modules():if isinstance(m, nn.Conv2d) or isinstance(m, nn.Linear):import scipy.stats as statsX stats.truncnorm(-2, 2, scale0.01)values torch.as_tensor(X.rvs(m.weight.numel()), dtypem.weight.dtype)values values.view(m.weight.size())with torch.no_grad():m.weight.copy_(values)elif isinstance(m, nn.BatchNorm2d):nn.init.constant_(m.weight, 1)nn.init.constant_(m.bias, 0)def BasicConv(self, in_channels, out_channels, **kwargs):return nn.Sequential(nn.Conv2d(in_channels, out_channels, biasFalse, **kwargs),nn.BatchNorm2d(out_channels, eps0.001),nn.ReLU(inplaceTrue),)def forward(self, x):# N x 3 x 224 x 224x self.conv1(x)# N x 64 x 112 x 112x self.maxpool1(x)# N x 64 x 56 x 56x self.conv2(x)# N x 64 x 56 x 56x self.conv3(x)# N x 192 x 56 x 56x self.maxpool2(x)# N x 192 x 28 x 28x self.inception3a(x)# N x 256 x 28 x 28x self.inception3b(x)# N x 480 x 28 x 28x self.maxpool3(x)# N x 480 x 14 x 14x self.inception4a(x)# N x 512 x 14 x 14x self.inception4b(x)# N x 512 x 14 x 14x self.inception4c(x)# N x 512 x 14 x 14x self.inception4d(x)# N x 528 x 14 x 14x self.inception4e(x)# N x 832 x 14 x 14x self.maxpool4(x)# N x 832 x 7 x 7x self.inception5a(x)# N x 832 x 7 x 7x self.inception5b(x)# N x 1024 x 7 x 7x self.avgpool(x)# N x 1024 x 1 x 1x torch.flatten(x, 1)# N x 1024x self.dropout(x)x self.fc(x)# N x 1000 (num_classes)return xif __name____main__:import torchsummaryinput torch.ones(2, 3, 224, 224).cpu()net GoogLeNet(num_classes4)net net.cpu()out net(input)print(out)print(out.shape)torchsummary.summary(net, input_size(3, 224, 224))# Total params: 5,604,004 通过使用不同大小的卷积核模型实现了对不同尺度感受野的提取这样能够捕获到局部与全局的信息而且135这样的选择也方便进行对齐 在网络的后期为了减少计算量使用了 1x1 的卷积核来进行降维。这一设计在保留特征信息的同时有效地降低了计算复杂度。 GoogLeNet在分类性能上的实验 该实验为四类分类实验每类有800张左右的图片分为了训练集测试集验证集轮次为50轮其他超参数不变。 训练集和验证集的损失记录  错误率记录 可以看到在验证集上损失在后期的波动较大错误率整体还是在向下的趋势。 参考文章 GoogLeNet详解-CSDN博客 GoogLeNet — PaddleEdu documentation GoogLeNet网络详解与模型搭建_googlenet模型-CSDN博客
http://www.zqtcl.cn/news/512841/

相关文章:

  • 苏州做网站的公司排名泉州网络推广专员
  • 无为县做互联网网站备案的时候网站建设方案书要吗
  • 修改网站的备案主体dede网站地图不显示文章列表
  • 建立个人网站的成本织梦html5手机网站模板
  • 怎么自己建一个网站吗php网页设计培训
  • 深圳大型论坛网站建设wordpress国内加速
  • 仿站怎么做广告装饰公司名字
  • 黄冈网站推广收费标准wordpress导航页面设置密码
  • 做网站会犯法吗贵州省建设厅城乡建设网站
  • 做网站和做公众号资金盘网站怎么建设
  • 全国最好的网站建设案例推广方法视频
  • 嘉兴网站建设策划方案在海口注册公司需要什么条件
  • 旅游网站国际业务怎样做建设企业官方网站企业登录
  • 北京市昌平网站建设小米网络营销案例分析
  • 怎么利用360域名做网站微信商城怎么弄
  • 中山h5网站建设天津网站建设技术托管
  • 建网站买的是什么商城网站建设合同
  • 购物网站制作样例有没有专门学做婴儿衣服的网站
  • 济南网站建设 找小七买友情链接有用吗
  • 南阳网站建设域名公司泉州关键词排名seo
  • 网站建设在线推广宁夏快速自助制作网站
  • 专业网站建设好不好wordpress编辑文章更新失败
  • 河南郑州网站建设哪家公司好html5 网站正在建设中
  • 免费ppt模板下载医学类江门seo网站推广
  • 智慧软文网站群辉wordpress地址
  • 自己怎么做拼单网站外贸网站 源码
  • 做网站如何防止被黑网页无法访问如何解决360浏览器
  • 专门做设计的网站互联网运营培训班哪个好
  • 烟台网站建设网站推广做网站与数据库的关系
  • 深圳网站设计成功刻成全视频免费观看在线看第7季高清