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

在线电子商务网站开发淮阴区建设局网站

在线电子商务网站开发,淮阴区建设局网站,如何做h5 网站,手机登录wordpress目录 一、模型创建过程1.1 以LeNet网络为例1.2 LeNet结构1.3 nn.Module 二、网络层容器(Containers)2.1 nn.Sequential2.1.1 常规方法实现2.1.2 OrderedDict方法实现 2.2 nn.ModuleList2.3 nn.ModuleDict2.4 三种容器构建总结 三、AlexNet网络构建 一、模型创建过程 1.1 以LeNe… 目录 一、模型创建过程1.1 以LeNet网络为例1.2 LeNet结构1.3 nn.Module 二、网络层容器(Containers)2.1 nn.Sequential2.1.1 常规方法实现2.1.2 OrderedDict方法实现 2.2 nn.ModuleList2.3 nn.ModuleDict2.4 三种容器构建总结 三、AlexNet网络构建 一、模型创建过程 1.1 以LeNet网络为例 网络代码如下 class LeNet(nn.Module):def __init__(self, classes):super(LeNet, self).__init__() # 调用父类方法作用是调用nn.Module类的构造函数# 确保LeNet类被正确地初始化并继承了nn.Module 的所有属性和方法self.conv1 nn.Conv2d(3, 6, 5) # 卷积层self.conv2 nn.Conv2d(6, 16, 5)self.fc1 nn.Linear(16 * 5 * 5, 120) # 全连接层self.fc2 nn.Linear(120, 84)self.fc3 nn.Linear(84, classes)def forward(self, x):out F.relu(self.conv1(x))out F.max_pool2d(out, 2)out F.relu(self.conv2(out))out F.max_pool2d(out, 2)out out.view(out.size(0), -1)out F.relu(self.fc1(out))out F.relu(self.fc2(out))out self.fc3(out)return out1.2 LeNet结构 LeNetconv1–pool1–conv2–pool2–fc1–fc2–fc3 1.3 nn.Module Module是nn模块中的功能nn模块还有Parameter、functional等模块。 nn.Module主要有以下参数 • parameters : 存储管理nn.Parameter类 • modules : 存储管理nn.Module类 • buffers存储管理缓冲属性如BN层中的running_mean 二、网络层容器(Containers) 2.1 nn.Sequential nn.Sequential 是 nn.module的容器也是最常用的容器用于按顺序包装一组网络层 • 顺序性各网络层之间严格按照顺序构建 • 自带forward()自带的forward里通过for循环依次执行前向传播运算 2.1.1 常规方法实现 LeNet网络由两部分构成中间的卷积池化特征提取部分(features)以及最后的分类部分(classifier)。 具体代码如下 class LeNetSequential(nn.Module):def __init__(self, classes):super(LeNetSequential, self).__init__()self.features nn.Sequential( #特征提取部分nn.Conv2d(3, 6, 5),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2),nn.Conv2d(6, 16, 5),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2),)self.classifier nn.Sequential( #分类部分nn.Linear(16*5*5, 120),nn.ReLU(),nn.Linear(120, 84),nn.ReLU(),nn.Linear(84, classes),)def forward(self, x):x self.features(x)x x.view(x.size()[0], -1)x self.classifier(x)return x打印网络层 2.1.2 OrderedDict方法实现 使用有序字典的方法构建Sequential 代码如下 class LeNetSequentialOrderDict(nn.Module):def __init__(self, classes):super(LeNetSequentialOrderDict, self).__init__()self.features nn.Sequential(OrderedDict({conv1: nn.Conv2d(3, 6, 5),relu1: nn.ReLU(inplaceTrue),pool1: nn.MaxPool2d(kernel_size2, stride2),conv2: nn.Conv2d(6, 16, 5),relu2: nn.ReLU(inplaceTrue),pool2: nn.MaxPool2d(kernel_size2, stride2),}))self.classifier nn.Sequential(OrderedDict({fc1: nn.Linear(16 * 5 * 5, 120),relu3: nn.ReLU(),fc2: nn.Linear(120, 84),relu4: nn.ReLU(inplaceTrue),fc3: nn.Linear(84, classes),}))def forward(self, x):x self.features(x)x x.view(x.size()[0], -1)x self.classifier(x)return x先看一下Sequential函数中init初始化的两种方法当我们使用OrderedDict方法时会进行判断使用self.add_module(key, module)方法将字典中的key和value取出来添加到Sequential中。 class Sequential(Module):def __init__(self, *args):super().__init__()if len(args) 1 and isinstance(args[0], OrderedDict):for key, module in args[0].items():self.add_module(key, module)else:for idx, module in enumerate(args):self.add_module(str(idx), module)通过这种方法构建可以给每一网络层添加一个名称网络输出结果如下 2.2 nn.ModuleList nn.ModuleList是 nn.module的容器用于包装一组网络层以迭代方式调用网络层 主要方法 • append()在ModuleList后面添加网络层 • extend()拼接两个ModuleList • insert()指定在ModuleList中位置插入网络层 使用列表生成式通过一行代码就能构建20个网络层。 代码演示 class ModuleList(nn.Module):def __init__(self):super(ModuleList, self).__init__()# 使用列表生成式构建20个全连接层每个全连接层10个神经元的网络self.linears nn.ModuleList([nn.Linear(10, 10) for i in range(20)])def forward(self, x):for i, linear in enumerate(self.linears):x linear(x)return xnet ModuleList()2.3 nn.ModuleDict nn.ModuleDict是 nn.module的容器用于包装一组网络层以索引方式调用网络层可以用过参数的形式选取想要调用的网络层。 主要方法 • clear()清空ModuleDict • items()返回可迭代的键值对(key-value pairs) • keys()返回字典的键(key) • values()返回字典的值(value) • pop()返回一对键值并从字典中删除 代码展示只选取conv和relu两个网络层 class ModuleDict(nn.Module):def __init__(self):super(ModuleDict, self).__init__()self.choices nn.ModuleDict({conv: nn.Conv2d(10, 10, 3),pool: nn.MaxPool2d(3)})# 激活函数self.activations nn.ModuleDict({relu: nn.ReLU(),prelu: nn.PReLU()})def forward(self, x, choice, act): # 传入两个参数 用来选择网络层x self.choices[choice](x)x self.activations[act](x)return x net ModuleDict() fake_img torch.randn((4, 10, 32, 32)) output net(fake_img, conv, relu) #只选取conv和relu两个网络层。 print(output) 2.4 三种容器构建总结 • nn.Sequential顺序性各网络层之间严格按顺序执行常用于block构建 • nn.ModuleList迭代性常用于大量重复网构建通过for循环实现重复构建 • nn.ModuleDict索引性常用于可选择的网络层 三、AlexNet网络构建 AlexNet2012年以高出第二名10多个百分点的准确率获得ImageNet分类任务冠军开创了卷积神经网络的新时代 AlexNet特点如下 采用ReLU替换饱和激活函数减轻梯度消失采用LRN(Local Response Normalization)对数据归一化减轻梯度消失Dropout提高全连接层的鲁棒性增加网络的泛化能力Data AugmentationTenCrop色彩修改 网络结构图如下 构建代码 import torch.nn as nn import torch from torchsummary import summary # 定义一个名为AlexNet的神经网络模型继承自nn.Module基类 class AlexNet(nn.Module):# 构造函数初始化网络的参数def __init__(self, num_classes: int 1000, dropout: float 0.5) - None:# 调用父类的构造函数super().__init__()# 定义神经网络的特征提取部分包含多个卷积层和池化层self.features nn.Sequential(nn.Conv2d(3, 64, kernel_size11, stride4, padding2), # 输入通道3输出通道64卷积核大小11x11步长4填充2nn.ReLU(inplaceTrue), # 使用ReLU激活函数inplaceTrue表示原地操作节省内存nn.MaxPool2d(kernel_size3, stride2), # 最大池化层核大小3x3步长2nn.Conv2d(64, 192, kernel_size5, padding2), # 输入通道64输出通道192卷积核大小5x5填充2nn.ReLU(inplaceTrue),nn.MaxPool2d(kernel_size3, stride2),nn.Conv2d(192, 384, kernel_size3, padding1),nn.ReLU(inplaceTrue),nn.Conv2d(384, 256, kernel_size3, padding1),nn.ReLU(inplaceTrue),nn.Conv2d(256, 256, kernel_size3, padding1),nn.ReLU(inplaceTrue),nn.MaxPool2d(kernel_size3, stride2),)# 定义自适应平均池化层将输入的任意大小的特征图池化为固定大小6x6self.avgpool nn.AdaptiveAvgPool2d((6, 6))# 定义分类器部分包含全连接层和Dropout层self.classifier nn.Sequential(nn.Dropout(pdropout), # 使用Dropout进行正则化随机丢弃一部分神经元以防止过拟合nn.Linear(256 * 6 * 6, 4096), # 输入大小为256*6*6输出大小为4096nn.ReLU(inplaceTrue),nn.Dropout(pdropout),nn.Linear(4096, 4096),nn.ReLU(inplaceTrue),nn.Linear(4096, num_classes), # 最后的全连接层输出类别数)# 前向传播函数定义数据在网络中的传播过程def forward(self, x: torch.Tensor) - torch.Tensor:x self.features(x) # 特征提取x self.avgpool(x) # 平均池化x torch.flatten(x, 1) # 将特征图展平成一维向量x self.classifier(x) # 分类器return xif __name__ __main__:net AlexNet().cuda()summary(net, (3, 256, 256))打印出的网络结构图如下
http://www.w-s-a.com/news/353725/

相关文章:

  • flash 网站欣赏国外做的比较好的网站有哪些
  • 推广一个网站需要什么官网首页设计
  • 淘宝建设网站的理由企业官网建设哪家好
  • 青岛网站推wordpress主题切换
  • 天元建设集团有限公司资质郑州网站seo推广
  • 免费网站后台管理系统模板下载百度网盘app下载安装
  • 开封网站建设培训郑州高端网站建设哪家好
  • 东莞哪家做网站很有名的公司即墨专业医院网站制作公司
  • 做面食网站china cd wordpress
  • 门户网站 营销优秀建筑模型案例作品
  • 训做网站的心得体会范文中山市 有限公司网站建设
  • 服装电子商务网站建设过程与实现两学一做学习教育网站
  • 住房和城建设网站怎么用源码建站
  • 监理工程师证查询网站百度关键词优化软件网站
  • 关于建筑建设的网站asp网站建设报告书
  • 服务二级公司网站建设平台销售模式有哪些
  • 南昌县建设局网站微信分销小程序开发
  • 网站设计师需要什么知识与技能wordpress个性
  • 做茶叶网站的目的和规划有什么做照片书的网站
  • 开福区城乡建设局门户网站关键词挖掘查询工具爱站网
  • 网站建设全国排名沈阳seo按天计费
  • 成都公司网站设计无锡seo网站推广费用
  • 建网站平台要多少钱购物网站界面设计策划
  • 学完js了可以做哪些网站长沙建站官网
  • 怎么样做问卷网站多少钱英语
  • 房产网站建设方案建筑公司是干什么的
  • wordpress建的大型网站柳州市网站建设
  • 石家庄做网站的公司有哪些微信自媒体网站建设
  • 池州哪里有做网站注册公司有哪些风险
  • 做古代风格头像的网站对网站政务建设的建议