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

公司网站建设设计公司排名室内设计师哪里找

公司网站建设设计公司排名,室内设计师哪里找,做一个购物网站多少钱,福州网站建站公司同学你好#xff01;本文章于2021年末编写#xff0c;获得广泛的好评#xff01; 故在2022年末对本系列进行填充与更新#xff0c;欢迎大家订阅最新的专栏#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现#xff0c; Pytorch深度学习理论篇(2023版)目录地址…同学你好本文章于2021年末编写获得广泛的好评 故在2022年末对本系列进行填充与更新欢迎大家订阅最新的专栏获取基于Pytorch1.10版本的理论代码(2023版)实现 Pytorch深度学习·理论篇(2023版)目录地址为 CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录本专栏将通过系统的深度学习实例从可解释性的角度对深度学习的原理进行讲解与分析通过将深度学习知识与Pytorch的高效结合帮助各位新入门的读者理解深度学习各个模板之间的关系这些均是在Pytorch上实现的可以有效的结合当前各位研究生的研究方向设计人工智能的各个领域是经过一年时间打磨的精品专栏https://v9999.blog.csdn.net/article/details/127587345欢迎大家订阅(2023版)理论篇 以下为2021版原文~~~~ 1 Dropout方法 2.1 Dropout原理 在训练过程中每次随机选择一部分节点不去进行学习。 2.1.1 从Dropout原理来看过拟合的原因 任何一个模型不能完全把数据分开在某一类中一定会有一些异常数据过拟合的问题恰恰是把这些异常数据当成规律来学习了。 2.1.2 异常数据的特点 异常数据的特点与主流样本中的规律不同在一个样本中出现的概率要比主流数据出现的概率低很多。在每次训练中忽略模型中一些节点将小概率的异常数据获得学习的机会变得更低。这样异常数据对模型的影响就会更小。 2.1.3 Dropout的缺陷 Dropout会使一部分节点不去学习所以在增加模型的泛化能力的同时会使学习速度隆低。这注意样会使模型不太容易学成于是在使用的过程中需要令理地进行调节也就是确定到底丢弃多少节点。注意并不是丢弃的节点越多越好。 2.2 Dropout的实现 2.2.1 Dropout的实现 Dropout对一维的线性数据进行Dropout处理输入形状是[N,D](N代表次数D代表数据数)。Dropout2D对二维的平面数据进行Dropout处理输入形状是[N,C,H,W]和N代表批次数C代表通道数H代表高度W代表宽度)系统将对整个通道随机设为0。Dropout3D对三维的立体数据进行Dropout处理输入形状是[N,C,D,H,W]N代表批次数C代表通道数D代表深度H代表高度W代表宽度)系统将对整个通道随机设为0。 2.2.2 Dropout函数定义(基于函数形式) torch.nn.functional.dropout(input,p0.5,trainingFalse,inplaceFalse) input代表输入的模型节点。p表示丢弃率。如果参数值为1那么表示全部丢弃置0。该参数默认值是0.5表示丢弃50%的节点。training表示该函数当前的使用状态。如果参数值是False,那么表明不在训练状态使用这时将不丢弃任何节点。inplace表示是否改变输入值默认是False。 2.2.3 Dropout函数使用的注意事项 Dropout改变了神经网络的网络结构它仅仅是属于训练时的方法。进行测试时一般要将函效Dropout的trainimg参数变为False表示不需要进行丢弃。否则会影响模型的型常输出。在使用类的方式调用Dropout时没有training参数因为Dropout实例化对象会根据模型本身的调用方式来自动调节training参数。 2.3 通过Dropout改善模型的过拟合状况 2.3.1 修改上篇文章中的# 2 搭建网络模型部分  # 2 搭建网络模型 # model LogicNet(inputdim2,hiddendim500,outputdim2) # 实例化模型增加拟合能力将hiddendim赋值为500 # 替换为 class Logic_Dropout_Net(LogicNet):def __init__(self,inputdim,hiddendim,outputdim):super(Logic_Dropout_Net, self).__init__(inputdim,hiddendim,outputdim)# 方法2使用类的方法实现步骤1#self.dropout nn.Dropout(p0.07)def forward(self,x):x self.Linear1(x)x torch.tanh(x)# 方法1 使用函数的方式实现x nn.functional.dropout(x,p0.01,trainingself.training)# 方法2使用类的方法实现步骤2# x self.dropout(x)x self.Linear2(x)return xmodel Logic_Dropout_Net(inputdim2,hiddendim500,outputdim2) # 初始化模型 2.3.2 Dropout方法---代码总览 Dropout01.py import sklearn.datasets import torch import numpy as np import matplotlib.pyplot as plt from torch import nnfrom LogicNet_fun import LogicNet,moving_average,predict,plot_decision_boundary# 1 构建数据集 np.random.seed(0) # 设置随机数种子 X , Y sklearn.datasets.make_moons(40,noise0.2) # 生成两组半圆形数据 arg np.squeeze(np.argwhere(Y0),axis1) # 获取第1组数据索引 arg2 np.squeeze(np.argwhere(Y1),axis1) # 获取第2组数据索引 # 显示数据 plt.title(train moons data) plt.scatter(X[arg,0],X[arg,1],s100,cb,marker,label data1) plt.scatter(X[arg2,0],X[arg2,1],s40,cr,markero,label data2) plt.legend() plt.show()# 2 搭建网络模型 # model LogicNet(inputdim2,hiddendim500,outputdim2) # 实例化模型增加拟合能力将hiddendim赋值为500 # 替换为 class Logic_Dropout_Net(LogicNet):def __init__(self,inputdim,hiddendim,outputdim):super(Logic_Dropout_Net, self).__init__(inputdim,hiddendim,outputdim)# 方法2使用类的方法实现步骤1#self.dropout nn.Dropout(p0.07)def forward(self,x):x self.Linear1(x)x torch.tanh(x)# 方法1 使用函数的方式实现x nn.functional.dropout(x,p0.01,trainingself.training)# 方法2使用类的方法实现步骤2# x self.dropout(x)x self.Linear2(x)return xmodel Logic_Dropout_Net(inputdim2,hiddendim500,outputdim2) # 初始化模型optimizer torch.optim.Adam(model.parameters(),lr0.01) # 定义优化器:反向传播过程中使用。# 3 训练模型训练过程loss可视化 xt torch.from_numpy(X).type(torch.FloatTensor) # 将numpy数据转化为张量 yt torch.from_numpy(Y).type(torch.LongTensor) # 将numpy数据转化为张量 epochs 1000 # 定义迭代次数 losses [] # 损失值列表 for i in range(epochs):loss model.getloss(xt,yt)losses.append(loss.item()) # 保存损失值中间状态optimizer.zero_grad() # 清空梯度loss.backward() # 反向传播损失值optimizer.step() # 更新参数 avgloss moving_average(losses) # 获得损失值的移动平均值 plt.figure(1) plt.subplot(211) plt.xlabel(step number) plt.ylabel(Training loss) plt.title(step number vs Training loss) plt.show()# 4 模型结果可视化观察过拟合现象 plot_decision_boundary(lambda x: predict(model,x),X,Y) from sklearn.metrics import accuracy_score print(训练时的准确率,accuracy_score(model.predict(xt),yt)) # 重新生成两组半圆数据 Xtest,Ytest sklearn.datasets.make_moons(80,noise0.2) plot_decision_boundary(lambda x: predict(model,x),Xtest,Ytest) Xtest_t torch.from_numpy(Xtest).type(torch.FloatTensor) # 将numpy数据转化为张量 Ytest_t torch.from_numpy(Ytest).type(torch.LongTensor) print(测试时准确率,accuracy_score(model.predict(Xtest_t),Ytest_t)) LogicNet_fun.py import torch.nn as nn #引入torch网络模型库 import torch import numpy as np import matplotlib.pyplot as plt# 1.2 定义网络模型 class LogicNet(nn.Module): #继承nn.Module类构建网络模型def __init__(self,inputdim,hiddendim,outputdim): #初始化网络结构 》即初始化接口部分super(LogicNet,self).__init__()self.Linear1 nn.Linear(inputdim,hiddendim) #定义全连接层self.Linear2 nn.Linear(hiddendim,outputdim) #定义全连接层self.criterion nn.CrossEntropyLoss() #定义交叉熵函数def forward(self,x):# 搭建用两个全连接层组成的网络模型 》 即正向接口部分将网络层模型结构按照正向传播的顺序搭建x self.Linear1(x)# 将输入传入第一个全连接层x torch.tanh(x)# 将第一个全连接层的结果进行非线性变化x self.Linear2(x)# 将网络数据传入第二个全连接层return xdef predict(self,x):# 实现LogicNet类的预测窗口 》 即预测接口部分利用搭建好的正向接口得到模型预测结果#调用自身网络模型并对结果进行softmax()处理分别的出预测数据属于每一个类的概率pred torch.softmax(self.forward(x),dim1)# 将正向结果进行softmax()分别的出预测结果属于每一个类的概率return torch.argmax(pred,dim1)# 返回每组预测概率中最大的索引def getloss(self,x,y):# 实现LogicNet类的损失值接口 》 即损失值计算接口部分计算模型的预测结果与真实值之间的误差在反向传播时使用y_pred self.forward(x)loss self.criterion(y_pred,y)# 计算损失值的交叉熵return loss# 1.5 训练可视化 def moving_average(a,w10): #计算移动平均损失值if len(a) w:return a[:]return [val if idx w else sum(a[(idx - w):idx]) / w for idx, val in enumerate(a)]def moving_average_to_simp(a,w10): #if len(a) w:return a[:]val_list []for idx, val in enumerate(a):if idx w:# 如果列表 a 的下标小于 w, 直接将元素添加进 xxx 列表val_list.append(val)else:# 向前取 10 个元素计算平均值, 添加到 xxx 列表val_list.append(sum(a[(idx - w):idx]) / w)def plot_losses(losses):avgloss moving_average(losses)#获得损失值的移动平均值plt.figure(1)plt.subplot(211)plt.plot(range(len(avgloss)),avgloss,b--)plt.xlabel(step number)plt.ylabel(Training loss)plt.title(step number vs Training loss)plt.show()# 1.7 数据可视化模型 def predict(model,x): #封装支持Numpy的预测接口x torch.from_numpy(x).type(torch.FloatTensor)model LogicNet(inputdim2, hiddendim3, outputdim2)ans model.predict(x)return ans.numpy()def plot_decision_boundary(pred_func,X,Y): #在直角模型中实现预测结果的可视化#计算范围x_min ,x_max X[:,0].min()-0.5 , X[:,0].max()0.5y_min ,y_max X[:,1].min()-0.5 , X[:,1].max()0.5h0.01xx, yy np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))#根据数据输入进行预测Z pred_func(np.c_[xx.ravel(),yy.ravel()])Z Z.reshape(xx.shape)#将数据的预测结果进行可视化plt.contourf(xx,yy,Z,cmapplt.cm.Spectral)plt.title(Linear predict)arg np.squeeze(np.argwhere(Y0),axis1)arg2 np.squeeze(np.argwhere(Y1),axis1)plt.scatter(X[arg,0],X[arg,1],s100,cb,marker)plt.scatter(X[arg2,0],X[arg2,1],s40,cr,markero)plt.show() 2.4 全连接网络与泛化能力 全连接网络是一个通用的近似框架。只要有足够多的神经元、即使只有一个隐藏层的整网络利用常用的Sigmoid、ReLU等激活函数就可以无限逼近任何连续函数。浅层的网络具有更好的拟合能力但是泛化能力相对较弱。深层的网络具有更好的泛化能力但是拟合能力相对较弱。 2.4.1 wide_deep模型 wide_deep模型就是利用了深层网络与浅层网络的特征实现的组合模型该模型由以下两个模型的输出结果叠加而成。     wide模型是一个单层线性模型浅层全连接网络模型。     deep模型是一个深度的全连接模型深层全连接网络模型。
http://www.pierceye.com/news/722772/

相关文章:

  • 江西营销网站建设公司的企业诚信建设分析
  • 生活家装饰官方网站动画设计考研
  • 网站内部的信息安全建设怎么才能在百度上做引流呢
  • 男男做的视频网站wordpress 系统
  • 网站建设合同 附件上海网站制作费用
  • 知名的环保行业网站开发开发一个app难吗
  • 律师网站建设方案网站企业制作
  • 基础建设期刊在哪个网站可以查做网站咨询
  • 万网个人网站备案查询甘肃建设银行网站
  • 网站建设有什么费用wordpress国外主题网站
  • 手机网站下拉菜单代码com域名代表什么
  • 网站右侧信息跟随左侧菜单栏变化好牛网站建设
  • 手机网站pc网站免费国外服务器租用
  • 商城网站建设服务wordpress手机导航三横拦
  • app设计欣赏网站长沙制作公园仿竹护栏
  • 景泰县做网站网站建设上市
  • 电子商务网站开发课题简介php mysql网站开发...
  • 如何提升网站alexa排名wordpress加联系方式
  • 餐厅网站模版wordpress linux
  • 网站seo优化怎么做mes系统
  • 江津网站建设公司做外贸去哪个网站找客户
  • 网站建设-部署与发布wordpress怎么代码高亮
  • 自己做的网站本地虚拟上传wordpress 不能评论
  • 百度贴吧网站开发需求分析怎么免费自己做推广
  • 网站怎么访问自己做的网页中国园林网
  • 郑州服装网站建设做营销型网站用那个cms好
  • 网站登录页面模板下载wordpress添加随机图片
  • 贵阳网站建设哪家便宜关键词林俊杰mp3在线听
  • 怎么看网站是哪个系统做的怎么自己建网站赚钱
  • 茶叶建设网站的优势小学网站模板