网站外包建设宁波网站建设公司制作网站

张小明 2026/1/10 18:57:14
网站外包建设,宁波网站建设公司制作网站,如何做网站评估分析,wordpress 老萨描述 残差网络是现代卷积神经网络的一种#xff0c;有效的抑制了深层神经网络的梯度弥散和梯度爆炸现象#xff0c;使得深度网络训练不那么困难。 下面以cifar-10-batches-py数据集#xff0c;实现一个ResNet18的残差网络#xff0c;通过继承nn.Module实现残差块#xff0…描述残差网络是现代卷积神经网络的一种有效的抑制了深层神经网络的梯度弥散和梯度爆炸现象使得深度网络训练不那么困难。下面以cifar-10-batches-py数据集实现一个ResNet18的残差网络通过继承nn.Module实现残差块Residual Block网络模型类。定义BlockResNetBlock派生至nn.Module需要自己实现forward函数。torch.nn.Module是nn中十分重要的类包含网络各层的定义及forward方法可以从这个类派生自己的模型类。nn.Module重要的函数forward(self,*input)forward函数为前向传播函数需要自己重写它用来实现模型的功能并实现各个层的连接关系__call__(self, *input, **kwargs) __call__()的作用是使class实例能够像函数一样被调用以“对象名()”的形式使用__repr__(self)__repr__函数为Python的一个内置函数它能把一个对象用字符串的形式表达出来__init__(self)构造函数自定义模型的网络层对象一般在这个函数中定义。classResNetBlock(nn.Module):def__init__(self,input_channels,num_channels,stride1): 构造函数定义网络层 super().__init__()self.conv1nn.Conv2d(input_channels,num_channels,kernel_size3,padding1,stridestride)self.btn1nn.BatchNorm2d(num_channels)self.conv2nn.Conv2d(num_channels,num_channels,kernel_size3,padding1,stride1)self.btn2nn.BatchNorm2d(num_channels)ifstride!1:self.downsamplenn.Conv2d(input_channels,num_channels,kernel_size1,stridestride)else:self.downsamplelambdax:xdefforward(self,X): 实现反向传播 Yself.btn1(self.conv1(X))Ynn.functional.relu(Y)Yself.btn2(self.conv2(Y))Yself.downsample(X)returnnn.functional.relu(Y)定义模型ResNet同样派生于nn.Module与ResNetBlock类似需要实现forward。torch.nn.Sequential是PyTorch 中一个用于构建顺序神经网络模型的容器类它将多个神经网络层或模块按顺序组合在一起简化模型搭建过程。‌Sequential器会严格按照添加的顺序执行内部的子模块前向传播时自动传递数据适用于简单神经网络的构建。classResNet(nn.Module):def__init__(self,layer_dism,num_class10): 构造函数定义预处理model构建block层 super(ResNet,self).__init__()# 预处理self.stemnn.Sequential(nn.Conv2d(3,64,3,1),# 3x30x30nn.BatchNorm2d(64),nn.ReLU(),nn.MaxPool2d(2,2)# 64x15x15)self.layer1self.build_resblock(64,64,layer_dism[0])self.layer2self.build_resblock(64,128,layer_dism[1],2)self.layer3self.build_resblock(128,256,layer_dism[2],2)self.layer4self.build_resblock(256,512,layer_dism[3],2)self.avgpoolnn.AvgPool2d(1,1)self.btnnn.Flatten()self.fcnn.Linear(512,num_class)defbuild_resblock(self,input_channels,num_channels,block,stride1):res_blocknn.Sequential()res_block.append(ResNetBlock(input_channels,num_channels,stride))for_inrange(1,block):res_block.append(ResNetBlock(num_channels,num_channels,stride))returnres_blockdefforward(self,X):outself.stem(X)outself.layer1(out)outself.layer2(out)outself.layer3(out)outself.layer4(out)outself.avgpool(out)returnself.fc(self.btn(out))模型训练加载数据使用torchvision.datasets加载本地数据如果本地没有数据可以设置downloadTrue自动下载。# 定义数据转换transformtransforms.Compose([transforms.ToTensor(),# 将PIL图像转换为Tensortransforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))# 归一化])# 加载CIFAR-10训练集trainsettorchvision.datasets.CIFAR10(rootrD:\dwload,trainTrue,downloadFalse,transformtransform)trainloaderth.utils.data.DataLoader(trainset,batch_size16,shuffleFalse,num_workers2)# 加载CIFAR-10测试集testsettorchvision.datasets.CIFAR10(rootrD:\dwload,trainFalse,downloadFalse,transformtransform)testloaderth.utils.data.DataLoader(testset,batch_size16,shuffleFalse,num_workers2)模型初始化模型初始化是确保网络能够有效学习的关键步骤一个好的初始值会使模型收敛速度提高使模型准确率更精确。torch.nn.init模块提供了一系列的权重初始化函数torch.nn.init.uniform_ 均匀分布torch.nn.init.normal_ 正态分布torch.nn.init.constant_初始化为指定常数torch.nn.init.kaiming_uniform_凯明均匀分布torch.nn.init.kaiming_normal_凯明正态分布torch.nn.init.xavier_uniform_Xavier均匀分布torch.nn.init.xavier_normal_Xavier正态分布在初始化时最好不要将模型的参数初始化为0因为这样会导致梯度消失进而影响训练效果。可以将模型初始化为一个很小的值如0.010.001等。definitialize_weight(m):ifisinstance(m,nn.Conv2d)orisinstance(m,nn.Linear):nn.init.kaiming_normal_(m.weight,modefan_out,nonlinearityrelu)# mode权重方差计算方式可选 fan_in 或 fan_out输入、输出神经元数量# nonlinearity激活函数类型用于调整计算公式 一般是relu、leaky_reluifm.biasisnotNone:nn.init.constant_(m.bias,0)[2,2,2,2] 参数分别代表四个block的中的残差块数量可以仔细看一下build_resblock函数resnet_18ResNet([2,2,2,2])resnet_18.apply(initialize_weight)# 初始化模型loss_crossnn.CrossEntropyLoss()trainerth.optim.SGD(resnet_18.parameters())训练训练过程比较漫长这里训练只有20轮测试精度0.51。如果有N卡加持的话可以适当调高epoch精度能进一步提高。forepochinrange(0,20):running_loss0.0forinputs,labelsintrainloader:trainer.zero_grad()outputsresnet_18(inputs)lossloss_cross(outputs,labels)loss.backward()trainer.step()running_lossloss.item()print(f[{epoch1}] ev loss:{running_loss/3125})running_loss0.0
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

1小时快速搭建网站企查查免费查询入口

第一章:Open-AutoGLM证件照黑科技概述Open-AutoGLM 是一款基于开源大模型与自动化图像生成技术深度融合的创新工具,专为高效生成符合规范的证件照而设计。它结合了自然语言理解、人脸关键点检测、背景智能分割与色彩校正等多项AI能力,实现了从…

张小明 2026/1/5 1:14:42 网站建设

网站制作后还能更改么it运维工资一般多少

第一章:混合检索的 Dify 查询优化在现代 AI 应用中,Dify 作为低代码开发平台,支持通过混合检索机制提升查询响应的准确性和效率。混合检索结合了关键词匹配与向量语义搜索的优势,能够在复杂查询场景下动态平衡相关性与性能。混合检…

张小明 2026/1/5 7:32:09 网站建设

制作地图的网站专业网站开发哪里有

浏览器中的全能终端:wssh让远程管理如此简单 🚀 【免费下载链接】wssh SSH to WebSockets Bridge 项目地址: https://gitcode.com/gh_mirrors/ws/wssh 还在为繁琐的SSH客户端安装而烦恼吗?wssh这款开源Web SSH客户端彻底改变了远程服务…

张小明 2026/1/4 23:14:18 网站建设

阿里巴巴国际站怎么开店个体工商户可以申请网站建设吗

优化软件开发流程:从构建到测试的全面指南 1. 分支管理的原则 在软件开发中,分支的使用需要谨慎。每个分支都会增加额外的开销和复杂性,因此团队应仅创建必要数量的分支,以支持并行开发和已发布版本的维护。例如,若团队在开发新功能的同时需要维护旧版本,就可能需要创建…

张小明 2026/1/5 5:58:38 网站建设

创建网站的费用产品如何推广市场

B站视频下载终极方案:哔哩下载姬专业配置完全教程 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&#xff0…

张小明 2026/1/9 22:20:35 网站建设

g3云网站做网站的技术性说明

还在为手动下载视频号、抖音、快手内容而烦恼吗?Res-Downloader作为一款专业的网络资源嗅探工具,通过智能代理拦截技术,帮你轻松实现全网资源的批量捕获与下载。无论是内容创作者、营销团队还是教育机构,都能从中获得10倍效率提升…

张小明 2026/1/5 23:30:30 网站建设