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

什么网站可以做excel表格中国工程建设标准化网站

什么网站可以做excel表格,中国工程建设标准化网站,网线制作视频,wordpress百度搜索无缩略图文章目录 一、优化器是什么二、优化器的使用三、分类模型VGG16四、现有网络模型的修改 一、优化器是什么 优化器#xff08;Optimizer#xff09;是一个算法#xff0c;用于在训练过程中调整模型的参数#xff0c;以便最小化损失函数#xff08;Loss Function#xff09… 文章目录 一、优化器是什么二、优化器的使用三、分类模型VGG16四、现有网络模型的修改 一、优化器是什么 优化器Optimizer是一个算法用于在训练过程中调整模型的参数以便最小化损失函数Loss Function。损失函数衡量的是模型预测值与真实值之间的差异而优化器则负责通过更新模型的权重Weights和偏置Biases来减少这种差异。 利用得到的梯度用优化器对梯度进行修正从而得到整体误差降低的目的。 优化器Optimizer 所需要从参数 参数解析 model.parameters()是训练的模型lrLearningRate是学习率这是最核心的参数之一它决定了在每次迭代中参数更新的步长。如果学习率太高可能会导致训练过程中的梯度爆炸使模型无法收敛训练很不稳定如果学习率太低训练过程可能会变得非常缓慢。 推荐一开始用大的lr值进行运算到后面用小的lr再进行运算。动量Momentum往往是特定参数是用于加速梯度下降方法特别是在处理凸优化问题时。它通过在连续的迭代中累积梯度信息来帮助优化器克服局部最小值并加快收敛速度。 二、优化器的使用 本文使用我的上一章内容神经网络内容进行续写神经网络具体可跳转损失函数和反向传播 使用一下代码来进行梯度优化 optim.zero_grad()# 向后传播result_loss.backward()#这一步对数值进行调优optim.step()整体代码如下 import torch import torchvision from torch import nn from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterdataset torchvision.datasets.CIFAR10(../data, trainFalse, transformtorchvision.transforms.ToTensor(), download True)dataloader DataLoader (dataset, batch_size 1) class Sen(nn.Module):def __init__(self):super(Sen,self).__init__()self.model1 Sequential(Conv2d(3, 32, 5, 1, 2),MaxPool2d(2),Conv2d(32, 32, 5, padding2),MaxPool2d(2),Conv2d(32, 64, 5, padding2),MaxPool2d(2),Flatten(),Linear(1024, 64),Linear(64, 10))def forward(self, x):x self.model1(x)return xloss nn.CrossEntropyLoss() sen Sen()#随机梯度下降 optim torch.optim.SGD(sen.parameters(), lr0.01)for data in dataloader:imgs, tatgets dataoutputs sen(imgs)result_loss loss(outputs, tatgets)#对参数进行梯度清零optim.zero_grad()# 向后传播result_loss.backward()#这一步对数值进行调优optim.step() 在未运行时的梯度没有值 当运行一下 可以看到每个参数节点的值被计算出来了。 当for循环第二次运行的时候可以看到grad梯度已经被优化了 通过反复循环上图中的data数据也就是loss就会越来越被优化。 上面的for循环其实是为数据的一次小循环我们可以加上epoch 外嵌套 进行数据的一轮轮循环深度优化 for epoch in range(20):running_loss 0.0#这里只是进行了一次的学习for data in dataloader:imgs, tatgets dataoutputs sen(imgs)result_loss loss(outputs, tatgets)#对参数进行梯度清零optim.zero_grad()# 向后传播result_loss.backward()#这一步对数值进行调优aoptim.step()#这一步就相当于所有误差的一个整体求和running_loss running_loss result_loss整体代码 import torch import torchvision from torch import nn from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterdataset torchvision.datasets.CIFAR10(../data, trainFalse, transformtorchvision.transforms.ToTensor(), download True)dataloader DataLoader (dataset, batch_size 1) class Sen(nn.Module):def __init__(self):super(Sen,self).__init__()self.model1 Sequential(Conv2d(3, 32, 5, 1, 2),MaxPool2d(2),Conv2d(32, 32, 5, padding2),MaxPool2d(2),Conv2d(32, 64, 5, padding2),MaxPool2d(2),Flatten(),Linear(1024, 64),Linear(64, 10))def forward(self, x):x self.model1(x)return xloss nn.CrossEntropyLoss() sen Sen()#随机梯度下降 optim torch.optim.SGD(sen.parameters(), lr0.01)#这里是进行一轮一轮的学习 for epoch in range(20):running_loss 0.0#这里只是进行了一次的学习for data in dataloader:imgs, tatgets dataoutputs sen(imgs)result_loss loss(outputs, tatgets)#对参数进行梯度清零optim.zero_grad()# 向后传播result_loss.backward()#这一步对数值进行调优aoptim.step()#这一步就相当于所有误差的一个整体求和running_loss running_loss result_lossprint(running_loss)运行结果如下可以看到整个神经网络在所有的数据当中它的误差之和如下 在第一轮优化的时候整个神经网络的误差之和是18779 在第二轮优化的时候整个神经网络的误差之和是16205 在第三轮优化的时候整个神经网络的误差之和是15448 可以看到通过优化器的一轮轮优化整体的loss值会一直降低从而达到数据优化的效果。 三、分类模型VGG16 pytorch为我们提供了很多网络模型其中包括分类模型VGG16 分类模型VGG16是基于ImageNet数据集进行训练的所以我们需要下载ImageNet数据集 由于ImageNet数据集的内存为143g会发生以下报错需要我们自己去下载ImageNet数据集再放在根目录当中。 既然ImageNet数据集太大那么就换一条思路用一下方法加载vgg16 import torchvision.datasets vgg16_false torchvision.models.vgg16(pretrainedFalse) vgg16_True torchvision.models.vgg16(pretrainedTrue) print(ok)如果pretrained True说明这个数据集已经是训练好的了。 如果pretrained False说明这些参数是一个初始参数没有在任何参数集上面进行训练。 如果progress True显示下载进度条 如果progress Flase则不显示下载进度条 vgg16_false torchvision.models.vgg16(pretrainedFalse)这代码表示只是加载网络模型也就是像之前的网络模型那样只是加载模型含有卷积池化等其中的参数都是默认的所以它不需要下载。 vgg16_True torchvision.models.vgg16(pretrainedTrue)这代码表示需要把网络模型参数进行一个下载还要加载对应的参数。故它需要进行下载。 简单理解就是False不需要进行下载而True需要进行下载。 VGG16将数据集分成1000个类。 print(vgg16_true) 输出结果 看它把各种卷积层最大池化都自动按参数下载好了。 常用的CIFAR10会把数据集分成10个类。 vgg16会把数据集分成1000个类如上图的out_features1000 四、现有网络模型的修改 方法像上面得到的是out_features1000我们可以进行一个新的处理通过Linear将输入是1000而输出为10从而达到降类的效果。 vgg16_true.add_module(add_linear, nn.Linear(1000, 10))运行得到 可以看到在add_linear这里的out_features10 如果要想类的改变在classifier当中那么代码只需要添加上classifier vgg16_true.classifier.add_module(add_linear, nn.Linear(1000, 10))运行结果 整体代码如下 import torchvision.datasets from torch import nnvgg16_false torchvision.models.vgg16(pretrainedFalse) vgg16_true torchvision.models.vgg16(pretrainedTrue)print(vgg16_true)train_data torchvision.datasets.CIFAR10(./data,trainTrue, transformtorchvision.transforms.ToTensor(),downloadTrue)vgg16_true.classifier.add_module(add_linear, nn.Linear(1000, 10))如果想直接在上面 6Linear 里面修改out_features而不是新命名一个add_linear进行修改也是可以的 用vgg16_flase进行示范 在没进行修改前print(vgg16_false) 运行结果 直接在6Linear中修改out_features为10 代码 vgg16_false.classifier[6] nn.Linear(4096, 10)运行结果 可以看到out_features10,从而成功修改现有的网络模型。
http://www.yayakq.cn/news/3697/

相关文章:

  • 建设银行网站设计的优点网站建设结算系统
  • 网站空间大小选择中企动力建设的网站如何修改
  • 电商网站在线支付怎么做内网网站开发费用
  • 新乡谷雨网络公司做的网站怎么样p2p网站 开发
  • 做网站租服务器一年多少钱wordpress双语站
  • 网站后台管理系统 静态页面长沙微推广平台
  • 公司网站建设有用吗网站开发设计框图
  • 自己的网站怎样做优化wordpress搜索提示
  • 免备案网站主机wordpress上传源码
  • oto网站开发wordpress文章固定字段
  • 网站教程dw营销型网站建设实战》
  • 网站建设及运营服务流程北京企业建站服务中企
  • 做网站用什么编程语言好wordpress neoease
  • 网站改版iis301跳转如何做网站制作1000元
  • 商业网站建设视频教程菏泽网站备案拍照
  • 孝感公司做网站做消费金融网站
  • 建设银行签名通在网站哪里下载手机麻将软件定制开发
  • 网站如何免费推广网络营销推广方案案例分析
  • iis 创建网站上海市最新消息今天
  • 网站开发具体步骤渝叶购零售客户电商网站
  • 创建网站公司 徐州大连网站建设培训班
  • 衡水企业做网站多少钱装饰设计风格
  • 沙井网站建设公司电子商务网站建设的市场分析
  • 网站怎么做外链知乎徐州建设安全监督网站
  • 购物网站详细设计成都百度竞价推广
  • 网站开发课程昆明seo网站建设
  • 温州网站建设icp备免费1级做爰片打网站
  • 北京h5网站建设报价wordpress step 2
  • 门户网站怎么做优化Wordpress的未来
  • 企业中英文网站开发做网络推广可以通过哪些渠道推广