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

耐克电子商务网站建设网络隐私安全

耐克电子商务网站建设,网络隐私安全,百度怎么发自己的广告,做网站电脑配置要求个高吗SqueezeNet 时隔一年我又开始复现神经网络的经典模型#xff0c;这次主要复的是轻量级网络全家桶#xff0c;轻量级神经网络旨在使用更小的参数量#xff0c;无限的接近大模型的准确率#xff0c;降低处理时间和运算量#xff0c;这次要复现的是轻量级网络的非常经典的一…SqueezeNet 时隔一年我又开始复现神经网络的经典模型这次主要复的是轻量级网络全家桶轻量级神经网络旨在使用更小的参数量无限的接近大模型的准确率降低处理时间和运算量这次要复现的是轻量级网络的非常经典的一个模型SqueezeNet它由美国加州大学伯克利分校的研究团队开发并于2016年发布。 文章链接: https://arxiv.org/pdf/1602.07360.pdf?sourcepost_page--------------------------- 看懂这篇文章需要的基础知识 了解python语法基础了解深度学习基本原理知道什么是卷积层池化层激活函数层softmanx层熟悉卷积层池化层需要的参数需要了解pytorch模型的基本构成 我记得去年的这个时候好像GPT还没被特别广泛的使用还没到一键就能直接输出写好的模型的这一个步骤那为什么还要看博客这类的文章呢应该是因为毕竟GPT他还是靠着已有的资料进行读取他不能图文并茂的给你写一个一定好用的大型模型不然直接把论文甩给他让他复现就好了所以还是打算写一下然后简单画点图然后给之后的学弟学妹们留一点遗产。 SqueezeNet 的模型结构 下面是原论文给出的模型结构 原文中给出了三种模型,分别是第一个基础模型,以及第二个和第三个带有残差分支的模型,其中卷积池化分支我们都有了解,这里新的东西就是这个Fire层,那就先从这个Fire层开始介绍 Fire层 作者说他的SqueezeNet网络为什么可以有更小的参数量主要由于用了下面这个叫Fire层的东西Fire层分两部分 一部分是Squeeze层其实就是卷积核大小为1×1的一个卷积层另一部分呢是expend层他实际上是卷积核大小为1×1和卷积核大小为卷积层和3×3输出的一个拼接 下面是原论文中对Fire模型的详细描述 那如果要实现一维的那就把3×3的卷积核改成1×3的 加上激活函数其实现代码应该是这样的,接下来详细介绍里面的参数。 in_channels 指Fire模块的输入通道数也是就每个Fire模块的squeeze卷积层的输入通道数squeeze_channels 指的是squeeze层的输出通道数expand1x1_channels 指的是expand层中卷积核大小为1×1的卷积层的输出通道数expand1x3_channels 指的是expand层中卷积核大小为1×2的卷积层的输出通道数 class FireModule(torch.nn.Module):def __init__(self, in_channels, squeeze_channels, expand1x1_channels, expand1x3_channels):super(FireModule, self).__init__()self.squeeze torch.nn.Conv1d(in_channels, squeeze_channels, kernel_size1)self.relu torch.nn.ReLU(inplaceTrue)self.expand1x1 torch.nn.Conv1d(squeeze_channels, expand1x1_channels, kernel_size1)self.expand1x3 torch.nn.Conv1d(squeeze_channels, expand1x3_channels, kernel_size3, padding1)def forward(self, x):x self.squeeze(x)x self.relu(x)out1x1 self.expand1x1(x)out1x3 self.expand1x3(x)out torch.cat([out1x1, out1x3], dim1)return self.relu(out)基础知识补充: torch.cat 将向量在某一个维度上拼接 import torch # Create two tensors out1x1 torch.tensor([[1, 2, 3], [1, 2, 3]]) out1x3 torch.tensor([[4, 5, 6], [7, 8, 9]])# Concatenate the tensors along the second dimension (dim1) out torch.cat([out1x1, out1x3], dim1) print(out) # tensor([[1, 2, 3, 4, 5, 6], # [1, 2, 3, 7, 8, 9]]) out torch.cat([out1x1, out1x3], dim0) print(out) # tensor([[1, 2, 3], # [1, 2, 3], # [4, 5, 6], # [7, 8, 9]])那有了Fire层模块之后就可以开始搭建我们的模型,那在搭建的过程中,各个层的参数如何设置呢,原文中给了如下表 第一列Layer name/type 指的是层的名称和类型第二列Output size 指的是输出尺寸第三列是filter size/stride (if not a fire layer)滤波器(卷积核/池化核)的大小(不包含Fire层)第四列depth 卷积层的深度,可以无视掉,没什么用第五-第七 给的就是Fire 层的参数了 再后面的是稀疏性字节大小还有修剪前后的参数大小,这部分不用过于关注,可能要多提一下的就是这个稀疏性sparsity,他指的是卷积层里选择多少参数一直为0,但是并没有详细说具体是怎么实现的,然后我也去搜了一下,需要用一些正则化的东西才可以,这个问题我打算再详细理解一下,暂时我们都默认稀疏性是100,不再为了稀疏性降低参数量实现额外复杂的工作. 根据参数和结构实现代码 一维 import torch from torchsummary import summary class FireModule(torch.nn.Module):def __init__(self, in_channels, squeeze_channels, expand1x1_channels, expand1x3_channels):super(FireModule, self).__init__()self.squeeze torch.nn.Conv1d(in_channels, squeeze_channels, kernel_size1)self.relu torch.nn.ReLU(inplaceTrue)self.expand1x1 torch.nn.Conv1d(squeeze_channels, expand1x1_channels, kernel_size1)self.expand1x3 torch.nn.Conv1d(squeeze_channels, expand1x3_channels, kernel_size3, padding1)def forward(self, x):x self.squeeze(x)x self.relu(x)out1x1 self.expand1x1(x)out1x3 self.expand1x3(x)out torch.cat([out1x1, out1x3], dim1)return self.relu(out)class SqueezeNet(torch.nn.Module):def __init__(self,in_channels,classes):super(SqueezeNet, self).__init__()self.features torch.nn.Sequential(# conv1torch.nn.Conv1d(in_channels, 96, kernel_size7, stride2),torch.nn.ReLU(inplaceTrue),# maxpool1torch.nn.MaxPool1d(kernel_size3, stride2),# Fire2FireModule(96, 16, 64, 64),# Fire3FireModule(128, 16, 64, 64),# Fire4FireModule(128, 32, 128, 128),# maxpool4torch.nn.MaxPool1d(kernel_size3, stride2),# Fire5FireModule(256, 32, 128, 128),# Fire6FireModule(256, 48, 192, 192),# Fire7FireModule(384, 48, 192, 192),# Fire8FireModule(384, 64, 256, 256),# maxpool8torch.nn.MaxPool1d(kernel_size3, stride2),# Fire9FireModule(512, 64, 256, 256))self.classifier torch.nn.Sequential(# conv10torch.nn.Conv1d(512, classes, kernel_size1),torch.nn.ReLU(inplaceTrue),# avgpool10torch.nn.AdaptiveAvgPool1d((1)))def forward(self, x):x self.features(x)x self.classifier(x)x torch.flatten(x, 1)return xif __name__ __main__:# 创建一个SqueezeNet实例model SqueezeNet(in_channels3,classes10)# model FireModule(96,16,64,64)# 打印模型结构summary(modelmodel, input_size(3, 224), devicecpu)二维 import torch from torchsummary import summary class FireModule(torch.nn.Module):def __init__(self, in_channels, squeeze_channels, expand1x1_channels, expand3x3_channels):super(FireModule, self).__init__()self.squeeze torch.nn.Conv2d(in_channels, squeeze_channels, kernel_size1)self.relu torch.nn.ReLU(inplaceTrue)self.expand1x1 torch.nn.Conv2d(squeeze_channels, expand1x1_channels, kernel_size1)self.expand3x3 torch.nn.Conv2d(squeeze_channels, expand3x3_channels, kernel_size3, padding1)def forward(self, x):x self.squeeze(x)x self.relu(x)out1x1 self.expand1x1(x)out3x3 self.expand3x3(x)out torch.cat([out1x1, out3x3], dim1)return self.relu(out)class SqueezeNet(torch.nn.Module):def __init__(self,in_channels,classes):super(SqueezeNet, self).__init__()self.features torch.nn.Sequential(# conv1torch.nn.Conv2d(in_channels, 96, kernel_size7, stride2),torch.nn.ReLU(inplaceTrue),# maxpool1torch.nn.MaxPool2d(kernel_size3, stride2),# Fire2FireModule(96, 16, 64, 64),# Fire3FireModule(128, 16, 64, 64),# Fire4FireModule(128, 32, 128, 128),# maxpool4torch.nn.MaxPool2d(kernel_size3, stride2),# Fire5FireModule(256, 32, 128, 128),# Fire6FireModule(256, 48, 192, 192),# Fire7FireModule(384, 48, 192, 192),# Fire8FireModule(384, 64, 256, 256),# maxpool8torch.nn.MaxPool2d(kernel_size3, stride2),# Fire9FireModule(512, 64, 256, 256))self.classifier torch.nn.Sequential(# conv10torch.nn.Conv2d(512, classes, kernel_size1),torch.nn.ReLU(inplaceTrue),# avgpool10torch.nn.AdaptiveAvgPool2d((1,1)))def forward(self, x):x self.features(x)x self.classifier(x)x torch.flatten(x, 1)return xif __name__ __main__:# 创建一个SqueezeNet实例model SqueezeNet(in_channels3,classes10)# model FireModule(96,16,64,64)# 打印模型结构summary(modelmodel, input_size(3, 224, 224), devicecpu)结束 对于SqueezeNet的第二个和第三个模型,我先把其他的轻量级网络都复现完之后我再回来写一下,对于入门来说先实现个基础版本就够用了
http://www.sczhlp.com/news/156559/

相关文章:

  • 昆明网站制作方案shopex网站经常出错
  • 网站第三方统计代码个人音乐网站建设
  • 查找企业资料的网站抖音代运营服务商
  • 做报名表的网站wordpress安装环境搭建
  • 开源的网站开发软件小红书推广引流渠道
  • 网站首页原型图怎么做哪里有免费永久的云服务器
  • 玉林做网站惠州seo外包费用
  • 音乐相册制作网站网站如何做背景音乐
  • 杭州门户网站有哪些百度精简版入口
  • 做动漫网站需要服务器么别人帮做的网站怎么修改病句
  • 建设工程施工合同网站企业建站服务器
  • 北京网站开发要多少钱做网站带来好处
  • 网站开发项目管理百度seo排名优化教程
  • 做网站选哪家公司好群晖WordPress绑定域名
  • 学校响应式网站模板下载威海市建设局网站
  • 山东建设执业资格注册中心网站dell公司网站建设的特点
  • 企业外贸网站建设学生个人网页内容排版设计作品
  • 重庆市公司网站备案在哪了阿里云服务器做盗版视频网站
  • 完整教程:【JAVA】【BUG】经常出现的典型 bug 及解决办法
  • AI元人文:价值共生体系统——构建人机文明的演进基石——DeeoSeek融合
  • 2025喷涂厂家TOP企业品牌推荐排行榜,喷涂、喷涂设备、 喷涂生产线、喷涂流水线推荐这十家公司!
  • 图派科技做网站怎么样郑州电力高等专科学校官网
  • 做网站推广和网络推广wordpress djd site post
  • 做网站一年的费用免费拓客100个方法
  • 百度网站大全合肥seo管理
  • 移动网站建设信息线上广告平台
  • 网站手机访问跳转代码wordpress主题google
  • 网站备案信息传帝国cms模板网
  • 网站字体大小选择wordpress 获取随机文章
  • 鸣蝉建站平台河南便宜网站建设