当前位置: 首页 > 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.pierceye.com/news/512841/

相关文章:

  • 做查工资的网站如何下载网页在线视频
  • 北沙滩网站建设公司主页怎么填
  • 手机asp网站网站设计方案
  • 长春市网站开发广东一站式网站建设推荐
  • 企业网站推广策略商会联盟网站建设方案
  • 清丰网站建设百度推广建设网站是不是合发
  • 邢台12345网站哪个公司的装饰设计公司
  • 嘉兴网嘉兴网站建设手机网站管理软件
  • 网站主色调简介怎么说本地常州微信网站建设
  • 电子商务网站数据库建设怎样推广一个网站
  • illustrator 学习网站wordpress外链产品
  • 电脑端网站一般做多宽最好网页游戏制作成本
  • 怎样做好手机网站建设wordpress开启xml rpc
  • 泉州企业网站建设公司做外贸要建什么网站
  • 找人做网站价格永城网站设计公司
  • 如何让网站做网页适配深圳市门户网站建设多少钱
  • 中金超钒 网站建设淘客推广方法
  • 网站建设的基本流程域名备案需要哪些资料
  • 怎么查找网站死链怎么自己做微信推送新闻
  • 做网站的人能看到浏览的人的信息吗怎么刷网站权重
  • 有了域名搭建网站详细步骤服务外包有哪些
  • 外贸网站样式传扬互动网站建设公司
  • 企业网站建设需要哪些资料信息免费推广工具
  • 网站怎么更新网页内容如何把自己的产品放到网上卖
  • jQuery网站建设中倒计时代码提高工作效率的重要性
  • 网站建设业务介绍深圳观澜网站建设
  • 最简单的做网站网站开发项目需求文档
  • wordpress网站打开速度小程序搜索排名帝搜sem880官网
  • 台州做网站公司企业网站seo策略
  • 专业网站建设推广网络营销推广方法和手段有哪些