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

网站建设 万网 域名做网站一定需要自己买主机吗

网站建设 万网 域名,做网站一定需要自己买主机吗,有没有什么免费网站,廉洁常德网站之前我们的优化#xff0c;主要是聚焦于对梯度下降运动方向的调整#xff0c;而在参数迭代更新的过程中#xff0c;除了梯度#xff0c;还有一个重要的参数是学习率α#xff0c;对于学习率的调整也是优化的一个重要方面。01—学习率衰减首先我们以一个例子#xff0c;来… 之前我们的优化主要是聚焦于对梯度下降运动方向的调整而在参数迭代更新的过程中除了梯度还有一个重要的参数是学习率α对于学习率的调整也是优化的一个重要方面。01—学习率衰减首先我们以一个例子来说明一下我们为什么需要学习率α衰减(learning rate decay)。如果学习率不衰减的话如下图蓝线所示由于噪音影响代价函数更新路径相对不规则但总体朝着最低点方向移动但是移动到最低点附近时由于学习率较大每一次会移动相对较远的距离容易直接跨过最低点导致代价函数在更新完毕后距离最低点仍然相对较远当我们随着迭代的次数逐渐降低学习率那么便如绿线所示一开始学习率较大前进速度较快到达最低点附近后学习率降低到更小的值于是最终更新完成后代价函数离最低点更近也就是模型更加优化预测值与实际值差距更小。进行学习率衰减的一种方式如下所示需要设置如下学习率更新规则1个epoch是指将所有mini-batch全部迭代一遍即遍历一遍。假设α00.2decay_rate1那么随着epoch增加学习率α会如下图变化在应用这个公式时我们需要选择合适的超参数α0和decay_rate。除了这种学习率衰减方式还有一些其他方式来进行学习率衰减此外还有离散衰减经过一段时间衰减一半02—学习率衰减的pytorch实现指数衰减我们首先需要确定需要针对哪个优化器执行学习率动态调整策略也就是首先定义一个优化器optimizer_ExpLR torch.optim.SGD(net.parameters(), lr0.1)定义好优化器以后就可以给这个优化器绑定一个指数衰减学习率控制器ExpLR torch.optim.lr_scheduler.ExponentialLR(optimizer_ExpLR, gamma0.98)参数gamma表示衰减的底数也就是decay_rate选择不同的gamma值可以获得幅度不同的衰减曲线。固定步长衰减即离散型衰减学习率每隔一定步数(或者epoch)就减少为原来的gamma分之一使用固定步长衰减依旧先定义优化器再给优化器绑定StepLR对象optimizer_StepLR torch.optim.SGD(net.parameters(), lr0.1)StepLR  torch.optim.lr_scheduler.StepLR(optimizer_StepLR, step_sizestep_size, gamma0.65)其中gamma参数表示衰减的程度step_size参数表示每隔多少个step进行一次学习率调整下面对比了不同gamma值下的学习率变化情况多步长衰减有时我们希望不同的区间采用不同的更新频率或者是有的区间更新学习率有的区间不更新学习率这就需要使用MultiStepLR来实现动态区间长度控制optimizer_MultiStepLR torch.optim.SGD(net.parameters(), lr0.1)torch.optim.lr_scheduler.MultiStepLR(optimizer_MultiStepLR,\                milestones[200, 300, 320, 340, 200], gamma0.8)其中milestones参数为表示学习率更新的起止区间在区间[0. 200]内学习率不更新而在[200, 300]、[300, 320].....[340, 400]的右侧值都进行一次更新gamma参数表示学习率衰减为上次的gamma分之一。其图示如下从图中可以看出学习率在区间[200 400]内快速的下降这就是milestones参数所控制的在milestones以外的区间学习率始终保持不变。余弦退火衰减严格的说余弦退火策略不应该算是学习率衰减策略因为它使得学习率按照周期变化其定义方式如下optimizer_CosineLR torch.optim.SGD(net.parameters(), lr0.1)CosineLR  torch.optim.lr_scheduler.CosineAnnealingLR(optimizer_CosineLR, T_max150, eta_min0)参数T_max表示余弦函数周期eta_min表示学习率的最小值默认它是0表示学习率至少为正值。确定一个余弦函数需要知道最值和周期其中周期就是T_max最值是初试学习率。下图展示了不同周期下的余弦学习率更新曲线为网络的不同层设置不同的学习率定义一个简单的网络结构class net(nn.Module): def __init__(self): super(net, self).__init__() self.conv1 nn.Conv2d(3, 64, 1) self.conv2 nn.Conv2d(64, 64, 1) self.conv3 nn.Conv2d(64, 64, 1) self.conv4 nn.Conv2d(64, 64, 1) self.conv5 nn.Conv2d(64, 64, 1) def forward(self, x): out conv5(conv4(conv3(conv2(conv1(x)))))        return out我们希望conv5学习率是其他层的100倍我们可以net net()lr 0.001conv5_params list(map(id, net.conv5.parameters())) # 1 base_params filter(lambda p: id(p) not in conv5_params, net.parameters()) # 2,3optimizer torch.optim.SGD([ {params: base_params},            {params: net.conv5.parameters(), lr: lr * 100}], lrlr, momentum0.9)1. conv5_params list(map(id,net.conv5.parameters()))中id()函数用于获取网络参数的内存地址map()函数用于将id()函数作用于net.conv5.parameters()得到的每个参数上。2.lambda p: id(p)中lamda表达式是python中用于定义匿名函数的方式其后面定义的是一个函数操作冒号前的符号是函数的形式参数用于接收参数符合的个数表示需要接收的参数个数冒号右边是具体的函数操作。3.filter()函数的作用是过滤掉不符合条件(False)的元素返回一个迭代器对象。该函数接收两个参数第一个为函数第二个为序列序列的每个元素作为参数传递给函数进行判断然后返回True或False最后返回值为True的元素Reference深度学习课程 --吴恩达https://zhuanlan.zhihu.com/p/93624972
http://www.sadfv.cn/news/469059/

相关文章:

  • 辽宁网站建设论坛门户网站建设方案
  • 排版设计教程上饶seo博客
  • 网站动效是代码做的吗专门做旅游保险的网站
  • 网站目录怎么做301跳转长沙做网站建设的
  • 商品网站建设方案湖北住房和城乡建设厅官方网站
  • 用做网站使用的图片苏州seo网站管理
  • 西安网站推广都是怎么做的鼓楼福州网站建设
  • 自己做网站需要钱吗网站产品页如何做优化
  • 济宁网站建设培训福州专业网站建设价格
  • 一般网站的宽度重庆网络学院官网
  • 网站建设与维护论文前端seo优化方案
  • 网站建设分为哪三部分专门做爬虫的网站
  • 重庆建网站优化盛盾科技网站建设
  • 自己弄个网站要怎么弄电子商务是什么专业
  • 怎么选择宜昌网站建设百度云app下载安装
  • 东营网站建设方案策划做网站 哪里发布
  • 网站开发用不用写交互微网站用什么软件做
  • 安装网站模版视频教程沧州南皮手机网站建设
  • 山东君天建设工程有限公司网站如何建设自己企业网站
  • 个人网站备案不通过建设仿优酷视频网站
  • php网站怎么做post订单php wordpress apache
  • 做免费网站需要营业执照吗网站更换logo
  • 服装网站建设策划案检测WordPress恶意代码插件
  • 富阳网站建设推广清水模板
  • 新手学做网站pdf进入不wordpress
  • 苏宁推客如何做网站爱用建站下载
  • 做网站电脑配置要求个高吗什邡移动网站建设
  • 天津人工智能建站系统软件达州高端网站建设
  • 美团网站建设昆明著名网站
  • 网站可以称为系统吗揭阳响应式网站价格