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

企业管理网站的来历wordpress备案号显示

企业管理网站的来历,wordpress备案号显示,国外家装设计网站,html5网站模板 医院前言 当涉足深度学习#xff0c;选择合适的框架是至关重要的一步。PyTorch作为三大主流框架之一#xff0c;以其简单易用的特点#xff0c;成为初学者们的首选。相比其他框架#xff0c;PyTorch更像是一门易学的编程语言#xff0c;让我们专注于实现项目的功能#xff0… 前言 当涉足深度学习选择合适的框架是至关重要的一步。PyTorch作为三大主流框架之一以其简单易用的特点成为初学者们的首选。相比其他框架PyTorch更像是一门易学的编程语言让我们专注于实现项目的功能而无需深陷于底层原理的细节。 就像我们使用汽车时更重要的是了解如何驾驭而不是花费过多时间研究轮子是如何制造的。我将以一系列专门针对深度学习框架的文章逐步深入理论知识和实践操作。但这需要在对深度学习有一定了解后才能进行现阶段我们的重点是学会如何灵活使用PyTorch工具。深度学习涉及大量数学理论和计算原理对于初学者来说可能会有些繁琐。然而只有通过实际操作我们才能真正理解所写代码在神经网络中的作用。我将努力将知识简化转化为我们熟悉的内容让大家能够理解和熟练使用神经网络框架。 如果你发现深度学习看似难以掌握我将尽力简化知识将其转化为我们更容易理解的内容。我会确保你能够理解知识并顺利运用到实践中。在后期我将发布一系列专门解析深度学习框架的文章但在开始学习之前我们需要对深度学习的理论知识和实践操作有一定的熟悉度。 作为一个从事数据建模五年的专业人士我参与了许多数学建模项目了解各种模型的原理、建模流程和题目分析方法。我希望通过这个专栏让你能够快速掌握各类数学模型、机器学习和深度学习知识并掌握相应的代码实现。每篇文章都包含实际项目和可运行的代码。我会紧跟各类数模比赛将最新的思路和代码分享给你保证你能够高效地学习这些知识。 博主非常期待与你一同探索这个精心打造的专栏里面充满了丰富的实战项目和可运行的代码希望你不要错过专栏链接 一、VGGNet概述 VGGNetVisual Geometry Group Network是由牛津大学视觉几何组Visual Geometry Group提出的深度卷积神经网络架构它在2014年的ImageNet图像分类挑战中取得了优异的成绩。VGGNet之所以著名一方面是因为其简洁而高效的网络结构另一方面是因为它通过深度堆叠的方式展示了深度卷积神经网络的强大能力。 VGGNet探索了卷积神经网络的深度与其性能之间的关系成功地构筑了16~19层深的卷积神经网络证明了增加网络的深度能够在一定程度上影响网络最终的性能使错误率大幅下降同时拓展性又很强迁移到其它图片数据上的泛化性也非常好。到目前为止VGG仍然被用来提取图像特征。 VGGNet包含两种结构分别为16层和19层。VGGNet结构中所有卷积层的kernel都只有3*3。VGGNet中连续使用3组3*3kernel的原因是它与使用1个7*7kernel产生的效果相同然而更深的网络结构还会学习到更复杂的非线性关系从而使得模型的效果更好。该操作带来的另一个好处是参数数量的减少因为对于一个包含了C个kernel的卷积层来说原来的参数个数为7*7*C而新的参数个数为3*(3*3*C)。 下图给出了VGG16的具体结构示意图 根据VGG16进行具体分析包含 13个卷积层Convolutional Layer3个全连接层Fully connected Layer5个池化层Pool layer 其中卷积层和全连接层具有权重系数因此也被称为权重层总数目为13316这即是VGG16中16的来源。 内存消耗主要来自早期的卷积而参数量的激增则发生在后期的全连接层。由于采用了大量的卷积层导致VGGNet的参数数量较大训练和推理过程需要更多的计算资源。而且参数量较大需要更多的数据来避免过拟合问题。 二、PyTorch网络搭建 我们参考上述网络结构利用pytorch进行网络搭建首先我们可以先搭建输出层根据我上述提供的每一层具体的parameters搭建即可 def __init__(self, num_classes1000):super(VGG,self).__init()__self.features self._make_layers()self.classifier nn.Sequential(nn.Linear(512*7*7,4096),nn.ReLU(True),nn.Dropout(),nn,Linear(4096,4096),nn.ReLU(True),nn.Dropout(),nn.Linear(4096,num_classes)) 接下来我们来搭建卷积和全连接层可以利用循环帮助我们省去每个步骤繁琐的写层 def _make_layers(self):layers []in_clannels 3cfg [64,64,M,128,128,M,256,256,256,M,512,512,512,M]for v in cfg:if v M:layers [nn.MaxPool2d(kernel_size2,stride2)]else:conv2d nn.Conv2d(in_channels,v,kernel_size)layers [conv2d,nn.ReLU(inplaceTrue)]in_channels vreturn nn.Sequential(*layers) 然后写入每个神经网络必备的传播 def forward(self, x):x self.features(x)x x.view(x.size(0), -1)x self.classifier(x)return x 总体网络结构为 VGGNet((features): Sequential((0): Conv2d(3, 64, kernel_size(3, 3), stride(1, 1), padding(1, 1))(1): ReLU(inplaceTrue)(2): Conv2d(64, 64, kernel_size(3, 3), stride(1, 1), padding(1, 1))(3): ReLU(inplaceTrue)(4): MaxPool2d(kernel_size2, stride2, padding0, dilation1, ceil_modeFalse)(5): Conv2d(64, 128, kernel_size(3, 3), stride(1, 1), padding(1, 1))(6): ReLU(inplaceTrue)(7): Conv2d(128, 128, kernel_size(3, 3), stride(1, 1), padding(1, 1))(8): ReLU(inplaceTrue)(9): MaxPool2d(kernel_size2, stride2, padding0, dilation1, ceil_modeFalse)(10): Conv2d(128, 256, kernel_size(3, 3), stride(1, 1), padding(1, 1))(11): ReLU(inplaceTrue)(12): Conv2d(256, 256, kernel_size(3, 3), stride(1, 1), padding(1, 1))(13): ReLU(inplaceTrue)(14): Conv2d(256, 256, kernel_size(3, 3), stride(1, 1), padding(1, 1))(15): ReLU(inplaceTrue)(16): MaxPool2d(kernel_size2, stride2, padding0, dilation1, ceil_modeFalse)(17): Conv2d(256, 512, kernel_size(3, 3), stride(1, 1), padding(1, 1))(18): ReLU(inplaceTrue)(19): Conv2d(512, 512, kernel_size(3, 3), stride(1, 1), padding(1, 1))(20): ReLU(inplaceTrue)(21): Conv2d(512, 512, kernel_size(3, 3), stride(1, 1), padding(1, 1))(22): ReLU(inplaceTrue)(23): MaxPool2d(kernel_size2, stride2, padding0, dilation1, ceil_modeFalse))(classifier): Sequential((0): Linear(in_features25088, out_features4096, biasTrue)(1): ReLU(inplaceTrue)(2): Dropout(p0.5, inplaceFalse)(3): Linear(in_features4096, out_features4096, biasTrue)(4): ReLU(inplaceTrue)(5): Dropout(p0.5, inplaceFalse)(6): Linear(in_features4096, out_features1000, biasTrue)) )定义损失函数和优化方法 #定义损失函数和优化方式 criterion nn.CrossEntropyLoss() #定义损失函数:交叉熵 optimizer torch.optim.SGD(net.parameters(),lr0.001,momentum0.9)#定义优化方法,随机梯度下降进行卷积网络训练这里需要微调一下原来vgg的模型Cifar10的数据集有10个类别而且图片转换的矩阵需要加入自适应池化层要一些改进 import torch.nn as nn# 设置随机种子以保证实验的可复现性 torch.manual_seed(0) torch.backends.cudnn.deterministic True torch.backends.cudnn.benchmark Falseclass VGGNet(nn.Module):def __init__(self, num_classes10):super(VGGNet, self).__init__()self.features self._make_layers()self.avgpool nn.AdaptiveAvgPool2d((7, 7))self.classifier nn.Sequential(nn.Linear(512*7*7,4096),nn.ReLU(True),nn.Dropout(),nn.Linear(4096,4096),nn.ReLU(True),nn.Dropout(),nn.Linear(4096,num_classes))def _make_layers(self):layers []in_channels 3cfg [64,64,M,128,128,M,256,256,256,M,512,512,512,M,512, 512, 512, M]for v in cfg:if v M:layers [nn.MaxPool2d(kernel_size2,stride2)]else:conv2d nn.Conv2d(in_channels,v,kernel_size3, padding1)layers [conv2d,nn.ReLU(inplaceTrue)]in_channels vreturn nn.Sequential(*layers)def forward(self, x):x self.features(x)x self.avgpool(x)x torch.flatten(x, 1)x self.classifier(x)return x 需要注意到是我们需要初始化网络的权重不更新权重的话10000张图片和实际不借助算法猜测图片的概率是一致的我们先不初始化网络的权重进行训练 for epoch in range(1):train_loss0.0for batch_idx,data in enumerate(train_loader,0):#初始化inputs,labels data #获取数据inputs inputs.to(device)labels labels.to(device)optimizer.zero_grad() #梯度置0#优化过程outputs net(inputs) #将数据输入到网络得到第一轮网络前向传播的预测结果outputsloss criterion(outputs,labels) #预测结果outputs和labels通过之前定义的交叉熵计算损失loss.backward() #误差反向传播optimizer.step() #随机梯度下降优化权重#查看网络训练状态train_loss loss.item()if batch_idx % 2000 1 :print(batch_idx)print([%d,%5d] loss: %.3f % (epoch 1,batch_idx 1,train_loss / 2000))train_loss 0.0print(Saving epoch %d model ...%(epoch 1))state {net:net.state_dict(),epoch:epoch1,}if not os.path.isdir(checkpoint):os.mkdir(checkpoint)#torch.save(state,./checkpoint/cifar10_epoch_%d.ckpt%(epoch1))print(Finished Training) 然后我们去计算整个测试集的预测效果 #批量计算整个测试集的预测效果 correct 0 total 0 with torch.no_grad():for data in test_loader:images,labels dataimages images.to(device)labels labels.to(device)outputs net(images)_,predicted torch.max(outputs.data,1)total labels.size(0)correct (predicted labels ).sum().item() #当标记的label种类和预测的种类一致时认为正确并计数print(Accurary of the network on the 10000 test images : %d %%%(100*correct/total))很明显和实际猜测的概率是一模一样的总共十个类别1/10很正常 Accurary of the network on the 10000 test images : 10 % 我们需要先进行初始化网络权重在训练 def initialize_weights(module):if isinstance(module, nn.Conv2d):nn.init.kaiming_normal_(module.weight, modefan_out, nonlinearityrelu)if module.bias is not None:nn.init.constant_(module.bias, 0)elif isinstance(module, nn.Linear):nn.init.normal_(module.weight, 0, 0.01)nn.init.constant_(module.bias, 0)之后在训练预测一版 Accurary of the network on the 10000 test images : 47 % 效果就十分明显了。 点关注防走丢如有纰漏之处请留言指教非常感谢 以上就是本期全部内容。我是fanstuck 有问题大家随时留言讨论 我们下期见。
http://www.hkea.cn/news/14367840/

相关文章:

  • 广州网站建设十年乐云seo县城网站怎样做经验
  • 东莞整站优化推广公司找火速电脑网站转换手机网站怎么做
  • 合肥建设网站哪家好阳朔到桂林大巴
  • 网站设计对网站建设有哪些意义?wordpress sqlite3
  • 那种自行提取卡密的网站怎么做wordpress app 功能
  • 自己动手做网站教程高职专业建设管理网站
  • 百度网站降权网站建设包含哪些费用
  • 京东网站建设步骤网站开发公司 苏州
  • ECMS做的网站建筑材料东莞网站建设
  • 网站首页制作公司亚马逊海外购官方网
  • 美妆网站怎么做杭州做网站的公司有哪些
  • 个人门户网站备案流程网站代理如何做
  • 网站自适应怎么做利用表格布局做网站步骤
  • 室内装修网站手机网站需要域名吗
  • 怎样做外贸网站建设深圳建筑设计公司
  • 国外网站做问卷网站设计的研究方法
  • 兰州网站建设优化网站开发服务合同印花税
  • 网站建设设计技巧1元2元店5元店进货渠道大全
  • 山西两学一做网站怎样做网络推广营销
  • 宁晋网站建设多少钱jsp开发网站
  • 直接进网站的浏览器专业网页制作什么好
  • 设计 网站访问次数怎样下载手机app
  • 遵义公司网站搭建多少钱山东新华电脑学院学网站开发
  • 阿里云网站申请用途怎么做pdf电子书下载网站
  • 网站建设营销排名方案网站开发快速盈利
  • 免费网站网络推广seo咨询
  • 中国建设招标网是个假网站能免费创建网站吗
  • 傻瓜式做网站程序站长分析工具
  • 设计公司网站多少钱2012版wordpress
  • 网站自动优化上海网络推广专员招聘