版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模型评估与保存优化算法与损失函数01优化算法与损失函数在深度学习模型中具有举足轻重的作用,优化算法帮助模型训练更加稳定,更加容易收敛,并且帮助模型跳出局部极值或鞍点,寻找全局最小值。损失函数则是用来计算预测值与真实值之间误差。Pytorch的torch.optim和torch.nn中提供了常见的优化算法与损失函数。优化算法:
损失函数:torch.optim.Optimizertorch.nn.L1Losstorch.optim.Adadelta torch.nn.MSELosstorch.optim.Adagradtorch.nn.NLLLosstorch.optim.Adamax torch.nn.CrossEntropyLoss torch.optim.RMSprop torch.nn.BCELoss torch.optim.Rprop torch.nn.KLDivLosstorch.optim.SGD torch.nn.MarginRankingLosstorch.optim.ASGD torch.nn.HingeEmbeddingLoss torch.nn.SmoothL1Loss01优化算法与损失函数负对数概率损失函数NLLLossclasstorch.nn.NLLLoss(weight=None,size_average=True)weight参数为手动指定的每个类别的权重,是一个一维张量。如果给定的话,其长度必须为类别数。当训练集样本不均衡的话,使用这个参数是非常有用的。size_average参数指定是否取平均。classtorch.nn.NLLLoss2d(weight=None,size_average=True)用于图片的负对数概率损失函数。示例代码如下:m=nn.Conv2d(16,32,(3,3)).float()loss=nn.NLLLoss2d()input=autograd.Variable(torch.randn(3,16,10,10))target=autograd.Variable(torch.LongTensor(3,8,8).random_(0,4))output=loss(m(input),target)output.backward()01优化算法与损失函数绝对误差损失函数L1Lossclasstorch.nn.L1Loss(size_average=True)如果在创建L1Loss实例的时候在构造函数中传入size_average=False,那么求出来的绝对值的和将不会除以样本个数。如果是True,则对绝对值的和求平均。均方误差损失函数MSELossclasstorch.nn.MSELoss(size_average=True)如果在创建MSELoss实例的时候在构造函数中传入size_average=False,那么求出来的平方和将不会除以样本个数。如果是True,则对平方和求平均。01优化算法与损失函数交叉熵损失函数CrossEntropyLossclasstorch.nn.CrossEntropyLoss(weight=None,size_average=True)当训练一个多类分类器的时候,这个方法是十分有用的。其参数用法同前。二进制交叉熵损失函数BCELossclasstorch.nn.BCELoss(weight=None,size_average=True)用于计算auto-encoder重构误差。默认情况下,输出结果会基于样本数平均,如果size_average=False的话,损失值会被累加。KL散度损失函数KLDivLossclasstorch.nn.KLDivLoss(weight=None,size_average=True)KL散度常用来描述两个分布的距离,常用于在输出分布的空间上执行直接回归任务,其参数用法同前。01优化算法与损失函数带容限约束的排序损失函数MarginRankingLoss
01优化算法与损失函数合页嵌入损失函数HingeEmbeddingLoss
平滑绝对误差损失函数SmoothL1Lossclasstorch.nn.SmoothL1Loss(size_average=True)此损失函数对于异常点的敏感性不如MSELoss,而且,在某些情况下防止了梯度爆炸。平滑绝对误差损失函数有时也被称为Huberloss。01优化算法与损失函数优化器算法Optimizerclasstorch.optim.Optimizer(params,defaults)优化器算法即梯度下降法,是最原始的,也是最基础的算法。它将所有的数据集都载入,计算它们所有的梯度,然后沿着梯度相反的方向更新权重。自适应学习率算法Adadeltaclasstorch.optim.Adadelta(params,lr=1.0,rho=0.9,eps=1e-06,weight_decay=0)这是一种自适应学习率方法,能够随时间跟踪平方梯度并自动适应每个参数的学习率,是基于梯度下降的学习算法。自适应梯度算法Adagradclasstorch.optim.Adagrad(params,lr=0.01,lr_decay=0,weight_decay=0)自适应梯度算法会随着学习的进行,使得学习率逐渐减小。01优化算法与损失函数Adam优化器classtorch.optim.Adam(params,lr=0.001,betas=(0.9,0.999),eps=1e-08,weight_decay=0)这是一种随机梯度下降法的扩展算法,主要用于基于深度学习的计算机视觉和自然语言处理。Adamax优化器classtorch.optim.Adamax(params,lr=0.002,betas=(0.9,0.999),eps=1e-08,weight_decay=0)Adamax是Adam的一种变体,此方法对学习率的上限提供了一个更简单的范围,在Adam中,单个权重的更新规则是将其梯度与当前和过去梯度的L^2范数(标量)成反比例缩放。RMSprop算法classtorch.optim.RMSprop(params,lr=0.01,alpha=0.99,eps=1e-08,weight_decay=0,momentum=0,centered=False)RMSProp算法不是像AdaGrad算法那样暴力直接的累加平方梯度,而是加了一个衰减系数来控制历史信息的影响。01优化算法与损失函数弹性反向传播算法Rpropclasstorch.optim.Rprop(params,lr=0.01,etas=(0.5,1.2),step_sizes=(1e-06,50))RPROP算法具有收敛速度快、不容易陷入局部极小点、自适应能力强等优点。随机梯度下降算法SGDclasstorch.optim.SGD(params,lr=,momentum=0,dampening=0,weight_decay=0,nesterov=False)随机梯度下降算法每次从训练集中随机选择一个样本来进行学习。平均随机梯度下降算法ASGD
classtorch.optim.ASGD(params,lr=0.01,lambd=0.0001,alpha=0.75,t0=1000000.0,weight_decay=0)随机平均梯度算法在内存中为每一个样本都维护一个旧的梯度,随机选择第i个样本来更新此样本的梯度,其他样本的梯度保持不变,然后求得所有梯度的平均值,进而更新了参数。模型的评估与保存02一个判断患者的深度学习模型,如果判断结果为阳性,表示此样本为患病者,如果结果为阴性,则为健康者。假定有200个患病者和200个健康者参与测试,测试结果如下表。TP(Truepositive,真阳性)-190FN(Falsenegative,假阴性)-10TN(Truenegative,真阴性)-170FP(Falsepositive,假阳性)-30准确率(Accuracy):(TP+TN)/(TP+TN+FP+FN)精确率(Precision)
:TP/(TP+FP)召回率(Recall):TP/(TP+FN)F1分数:(2×Precision×Recall)/(Precision+Recall)模型的评估患病者健康者测试总数测试结果为阳性19030220测试结果为阴性10170180真实总数200200400模型的评估与保存02模型的评估关于模型的评估,离不开最重要的评估指标的概念,这就好比一场跑步比赛中,每位选手全程的用时,这里用时就是评估指标。不同的问题,评估指标是不同的(跑步比赛评估指标与跳水比赛指标是不同的)。深度学习常用的模型评估指标包括:准确率:预测正确的结果占总样本的百分比。精确率:所有被预测为阳性的样本中实际为阳性的样本的概率。召回率:实际为阳性的样本中被预测为阳性的样本的概率。F1分数:精确度和召回率之间的关系。模型的评估与保存02模型的评估可视化(1)ROC曲线ROC曲线,即接受者操作特性曲线(receiveroperatingcharacteristiccurve)。以假阳性率FalsePositiveRate(FPR)为横坐标,以真阳性率TruePositiveRate(TPR)为纵坐标,根据分类结果计算得到ROC空间中相应的点,连接这些点就形成ROC曲线。(2)AUC(AreasundertheROCcurve)AUC为ROC曲线下的面积(ROC的积分),通常大于0.5小于1。随机挑选一个正样本以及一个负样本,分类器判定正样本的值高于负样本的概率就是AUC值。AUC值(面积)越大的分类器,性能越好。(3)PR曲线精确率(P)召回率(R)曲线的横坐标是精确率P,纵坐标是召回率R。评价标准和ROC一样,先看平滑不平滑。当P和R的值接近时,F1值最大。模型的评估与保存02模型的保存和加载,通过torch.save和torch.load函数实现。模型保存有两种方式。第一种:只保存和加载模型参数对于一个实例化的模型对象the_model=TheModelClass(*args,**kwargs)保存模型参数采用torch.save(the_model.state_dict(),PATH)加载模型参数采用the_model.load_state_dict(torch.load(PATH))PATH为保存的路径。State_dict是python字典对象,它将模型的每一层映射到其参数张量中。模型的保存模型的评估与保存02通过torch.save和torch.load函数实现模型的保存和加载示例。importtorchimporttorch.nnasnnclassneuralModel(nn.Module): def__init__(self,device):super(neuralModel,self).__init__()#初始化函数
self.device=device
defdump(self,filename):#保存模型参数
torch.save(self.state_dict(),filename) defload(self,filename): state_dict=torch.load(open(filename,"rb"),map_location=self.device) self.load_state_dict(state_dict,strict=True)模型的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长安大学兴华学院《工科大学化学-化学分析与仪器分析基础》2024-2025学年第二学期期末试卷
- 景区内部暗访制度
- 机关内部控制度
- 机关内部通报制度
- 同济大学浙江学院《动画周边产品设计》2024-2025学年第二学期期末试卷
- 机构教师内部培训制度
- 林业局内部请假制度
- 某钻井公司内部管理制度
- 模联内部会议制度
- 上海外国语大学《智能计算机图形学》2024-2025学年第二学期期末试卷
- 2026年春人音版(简谱)(新教材)小学音乐二年级下册教学计划及进度表
- 【四年级】【数学】【春季下】开学家长会:与数同行共话梦想【课件】
- 2026年陕西航空职业技术学院单招职业技能测试模拟测试卷学生专用
- 2026年及未来5年中国面粉加工行业市场发展现状及投资方向研究报告
- 2026年春季统编版小学道德与法治四年级下册教学计划
- 女职工特殊保护 政策课件
- 2026年春季北师大版(2024)小学数学二年级下册教学计划
- 2026年内蒙古建筑职业技术学院单招职业技能考试题库及参考答案详解(新)
- 2026年春季学期德育工作安排方案(德育四表)
- 互联网企业网络安全管理制度(标准版)
- 2026年春节后复工复产安全专题培训
评论
0/150
提交评论