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

网站查询系统迅睿cms和帝国哪个好

网站查询系统,迅睿cms和帝国哪个好,工信部备案号查询平台,一站式企业服务Pytorch 第九回#xff1a;卷积神经网络——ResNet模型 本次开启深度学习第九回#xff0c;基于Pytorch的ResNet卷积神经网络模型。这是分享的第四个卷积神经网络模型。该模型是基于解决因网络加深而出现的梯度消失和网络退化而进行设计的。接下来给大家分享具体思路。 本次…Pytorch 第九回卷积神经网络——ResNet模型 本次开启深度学习第九回基于Pytorch的ResNet卷积神经网络模型。这是分享的第四个卷积神经网络模型。该模型是基于解决因网络加深而出现的梯度消失和网络退化而进行设计的。接下来给大家分享具体思路。 本次学习借助的平台是PyCharm 2024.1.3python版本3.11 numpy版本是1.26.4pytorch版本2.0.0cu118d2l的版本是1.0.3 文章目录 Pytorch 第九回卷积神经网络——ResNet模型前言1、残差块2、ResNet模型 一、数据准备二、模型准备1、残差块定义2、ResNet模型定义 模型训练1、实例化ResNet模型2、迭代训练模型3、输出展示 总结 前言 讲述模型前先讲述两个概念统一下思路 1、残差块 残差块是ResNet模型的基础架构该架构允许输入特征跨层作用到块的输出端从而加强了浅层特征的输出。其结构如下图所示 如上图所示这里的1*1卷积层可以将输入特征直接作用到输出端从而避免了浅层的梯度到达输出端时过小的问题。 2、ResNet模型 2015年ResNet模型由微软研究院提出并在ImageNet大规模视觉挑战赛中一举夺得了冠军。之前设计的神经网络随着网络层的增多并没有达到训练误差不断减少的预期反而出现训练误差逐渐加大的现象人们也称之为“网络退化”。ResNet模型通过加入了残差块的框架使训练的深层神经网络更加有效。 闲言少叙直接展示逻辑先上引用 import numpy as np import torch from torch import nn from torchvision.datasets import CIFAR10 import time from torch.utils.data import DataLoader from d2l import torch as d2l import torch.nn.functional as F一、数据准备 如前几回一样本次仍然采用CIFAR10数据集因此不做重点解释有兴趣的可以查看第六回内容本回只展示代码 def data_treating(x):x x.resize((96, 96), 2) #x np.array(x, dtypefloat32) / 255x (x - 0.5) / 0.5 #x x.transpose((2, 0, 1)) #x torch.from_numpy(x)return xtrain_set CIFAR10(./data, trainTrue, transformdata_treating) train_data torch.utils.data.DataLoader(train_set, batch_size64, shuffleTrue) test_set CIFAR10(./data, trainFalse, transformdata_treating) test_data torch.utils.data.DataLoader(test_set, batch_size128, shuffleFalse)注: 在本回设计的模型中数据最小为96 * 96。有兴趣的可以参考第八回小记自己进行计算。 二、模型准备 1、残差块定义 残差块的定义分为两部分一部分是初始化函数一部分是前向传播函数。需要注意的是add_conv1_1这个参数用于控制是否有输入特征直接作用于输出端。代码如下所示 class residual(nn.Module):def __init__(self, channel_in, channel_out, add_conv1_1False, stride1):super(residual, self).__init__()self.add_conv1_1 add_conv1_1self.conv1 nn.Conv2d(channel_in, channel_out, 3, stridestride, padding1, biasFalse)self.bn1 nn.BatchNorm2d(channel_out)self.conv2 nn.Conv2d(channel_out, channel_out, 3, stride1, padding1, biasFalse)self.bn2 nn.BatchNorm2d(channel_out)if self.add_conv1_1:self.conv3 nn.Conv2d(channel_in, channel_out, 1, stridestride)else:self.conv3 Nonedef forward(self, x):y self.conv1(x)y F.relu(self.bn1(y), True)y self.conv2(y)y F.relu(self.bn2(y), True)if self.add_conv1_1:x self.conv3(x)y y xreturn F.relu(y, True)如代所示码残差块中定义了两个33的卷积每个卷积层后面接了一个规范化层和一个Relu激活函数体现在传播函数中。self.conv3中定义了一个11的卷积层当add_conv1_1True时输入会经过self.conv3卷积层直接反馈到输出端y y x。 2、ResNet模型定义 本回中的ResNet模型定义了五个网络块。第一个网络块单独定义后四个网络块结构相似有兴趣的可以建立一个标准模块方便设计深层网络。 class resnet(nn.Module):def __init__(self, in_channel, num_classes):super(resnet, self).__init__()self.block1 nn.Sequential(nn.Conv2d(in_channel, 64, 7, 2),nn.BatchNorm2d(64, eps1e-3),nn.ReLU(True),nn.MaxPool2d(3, 2, 1))self.block2 nn.Sequential(residual(64, 64),residual(64, 64))self.block3 nn.Sequential(residual(64, 128, True, stride2),residual(128, 128))self.block4 nn.Sequential(residual(128, 256, True, stride2),residual(256, 256))self.block5 nn.Sequential(residual(256, 512, True, stride2),residual(512, 512),nn.AvgPool2d(3),nn.Flatten())self.classifier nn.Linear(512, num_classes)def forward(self, x):x self.block1(x)x self.block2(x)x self.block3(x)x self.block4(x)x self.block5(x)x self.classifier(x)return x注 由于本回采用d2l.train_ch6()进行数据训练里面集成了损失函数和优化器因此不需要单独定义在第八回小记中介绍了如何安装d2l库。 模型训练 1、实例化ResNet模型 这里输入为3个通道因为彩色图片有三个数据通道。输出为10因为数据集有10个类别数据集的介绍在第六回中。 classify_ResNet resnet(3, 10)2、迭代训练模型 本次训练采用d2l.train_ch6()函数其参数有六个第一个是模型第二个是训练集第三个是测试集第四个是迭代次数设定为20次第五个是学习率设定为0.01第六个是进行训练的设备设定为GPU训练。 d2l.train_ch6(classify_ResNet, train_data, test_data, 20, 0.01, d2l.try_gpu())3、输出展示 输出含有训练集精度、测试集精度和消耗的时间等这里我进对源码进行了修改可以查看第八回小记。 epoch0, loss 1.472, train acc 0.466, test acc 0.526,consume time 228.0 epoch4, loss 0.424, train acc 0.857, test acc 0.678,consume time 1139.3 epoch8, loss 0.047, train acc 0.989, test acc 0.680,consume time 2050.4 epoch12, loss 0.006, train acc 0.999, test acc 0.741,consume time 2961.4 epoch16, loss 0.002, train acc 1.000, test acc 0.746,consume time 3872.2 epoch19, loss 0.002, train acc 1.000, test acc 0.744,consume time 4555.5对比前三回ResNet在训练集的精度上又有所提高。 总结 1、数据准备准备CIFAR10数据集 2、模型准备准备残差块ResNEt模型 3、数据训练实例化训练模型采用train_ch6函数进行迭代训练。
http://www.hkea.cn/news/14494020/

相关文章:

  • 江津做网站锦州建设银行网站
  • 嘉定企业网站制作微信网站合同
  • 网站文字大小东莞市一箭天网络科技有限公司
  • asp.net mvc网站开发有网站地图的网站
  • 北京网站建设乐云seo学校网站建设招标公告
  • 做文字头像的网站洛阳霞光网络建站公司
  • 做隐私的网站百度商桥怎么和网站
  • 网站前端包括哪些怎样做网络推广wsyx挣钱
  • 企业做网站都购买域名吗cpa单页网站怎么做
  • 蓝色风格的网站网站搭建服务
  • 网站页面设计如何收费石家庄企业网站制作哪家好
  • 代理备案网站wordpress注册提示
  • 公司网站建设申请书少儿编程加盟培宝未来
  • 国内建设地铁的公司网站淘宝 网站开发 退货
  • 网站做编辑器自己的网站发文章怎么做外链
  • 网站灰色代码商业网站建设定位
  • 怎样优化手机网站建设北京飞雨网站建设公司
  • ddns怎么做网站wordpress主题know
  • 网站建设个人工作室电子商务网站开发参考文献
  • 专业网站设计服务商深圳全网营销方案
  • 网站建设策划解决方案前端工程师是做网站吗
  • 建设网站空间合同电商网站开发开题报告
  • 自建网站平台的页面功能做电影网站用什么cms
  • 游戏公司做网站深圳网站建设公司小江
  • 建立网站需要多少钱费用告诉你做网站需要多少钱
  • 做微信活动是做网站还是做小程序好wordpress下载整站源码
  • 具有价值的网站建设平台天津品牌网站建设好处
  • 直播类型网站开发有哪些好的做网站
  • 电子商务网站设计代做建筑设计师网
  • 怎么做淘客网站推广烟台门户网站