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

网站超级推广衡水专业做wap网站

网站超级推广,衡水专业做wap网站,网上商城网站建设设计方案,百度搜索一下PyTorch框架学习十四——学习率调整策略一、_LRScheduler类二、六种常见的学习率调整策略1.StepLR2.MultiStepLR3.ExponentialLR4.CosineAnnealingLR5.ReduceLRonPlateau6.LambdaLR在上次笔记优化器的内容中介绍了学习率的概念#xff0c;但是在整个训练过程中学习率并不是一直… PyTorch框架学习十四——学习率调整策略一、_LRScheduler类二、六种常见的学习率调整策略1.StepLR2.MultiStepLR3.ExponentialLR4.CosineAnnealingLR5.ReduceLRonPlateau6.LambdaLR在上次笔记优化器的内容中介绍了学习率的概念但是在整个训练过程中学习率并不是一直不变的一般学习率是要先设置的大一些然后在训练过程中慢慢减小。这次笔记就简单介绍一下PyTorch中学习率调整策略。 一、_LRScheduler类 是各种具体学习率调整策略方法函数所要继承的基类。 主要属性 optimizer关联的优化器last_epoch记录epoch数base_lrs记录初始学习率 主要方法 step()更新下一个epoch的学习率。get_lr()虚函数计算下一个epoch的学习率。 二、六种常见的学习率调整策略 1.StepLR 功能等间隔调整学习率。 torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma0.1, last_epoch-1)参数如下 step_size调整间隔数学习率衰减的周期。gamma调整系数默认为0.1。 调整方式lr lr * gamma 举个栗子 # 导入模块、设定超参数、给定权重数据 import torch import torch.optim as optim import numpy as np import matplotlib.pyplot as plt torch.manual_seed(1)LR 0.1 iteration 10 max_epoch 200weights torch.randn((1), requires_gradTrue) target torch.zeros((1))optimizer optim.SGD([weights], lrLR, momentum0.9)# StepLR每隔50轮下降一次学习率 scheduler_lr optim.lr_scheduler.StepLR(optimizer, step_size50, gamma0.1) # 设置学习率下降策略lr_list, epoch_list list(), list() for epoch in range(max_epoch):# 获取当前lr新版本用 get_last_lr()函数旧版本用get_lr()函数具体看UserWarninglr_list.append(scheduler_lr.get_last_lr())epoch_list.append(epoch)for i in range(iteration):loss torch.pow((weights - target), 2)loss.backward()optimizer.step()optimizer.zero_grad()scheduler_lr.step()plt.plot(epoch_list, lr_list, labelStep LR Scheduler) plt.xlabel(Epoch) plt.ylabel(Learning rate) plt.legend() plt.show()绘制出的结果如图所示 从图中可见每隔50轮学习率下降为原来的0.1倍。 2.MultiStepLR 功能按照给定间隔调整学习率。 torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones, gamma0.1, last_epoch-1)参数如下 milestones列表设定调整时刻数必须是递增的。gamma调整系数。 调整方式lr lr * gamma 举个栗子 milestones [50, 125, 160] scheduler_lr optim.lr_scheduler.MultiStepLR(optimizer, milestonesmilestones, gamma0.1)lr_list, epoch_list list(), list() for epoch in range(max_epoch):lr_list.append(scheduler_lr.get_last_lr())epoch_list.append(epoch)for i in range(iteration):loss torch.pow((weights - target), 2)loss.backward()optimizer.step()optimizer.zero_grad()scheduler_lr.step()plt.plot(epoch_list, lr_list, labelMulti Step LR Scheduler\nmilestones:{}.format(milestones)) plt.xlabel(Epoch) plt.ylabel(Learning rate) plt.legend() plt.show()结果如下图所示 从图中可见在我们设定的位置50/125/160轮时学习率下降为原来的0.1倍。 3.ExponentialLR 功能按指数衰减调整lr。 torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma, last_epoch-1)参数需要关注的只有一个 gamma指数的底。 调整策略lr lr * gamma ^ epoch 举个栗子 gamma 0.95 scheduler_lr optim.lr_scheduler.ExponentialLR(optimizer, gammagamma)lr_list, epoch_list list(), list() for epoch in range(max_epoch):lr_list.append(scheduler_lr.get_last_lr())epoch_list.append(epoch)for i in range(iteration):loss torch.pow((weights - target), 2)loss.backward()optimizer.step()optimizer.zero_grad()scheduler_lr.step()plt.plot(epoch_list, lr_list, labelExponential LR Scheduler\ngamma:{}.format(gamma)) plt.xlabel(Epoch) plt.ylabel(Learning rate) plt.legend() plt.show()学习率变化结果如下图所示 4.CosineAnnealingLR 功能余弦周期调整lr。 torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min0, last_epoch-1)参数如下所示 T_max下降周期注意不是cos的周期是cos周期的一半。eta_min学习率下限默认为0。 调整方式 t_max 50 scheduler_lr optim.lr_scheduler.CosineAnnealingLR(optimizer, T_maxt_max, eta_min0.)lr_list, epoch_list list(), list() for epoch in range(max_epoch):lr_list.append(scheduler_lr.get_last_lr())epoch_list.append(epoch)for i in range(iteration):loss torch.pow((weights - target), 2)loss.backward()optimizer.step()optimizer.zero_grad()scheduler_lr.step()plt.plot(epoch_list, lr_list, labelCosineAnnealingLR Scheduler\nT_max:{}.format(t_max)) plt.xlabel(Epoch) plt.ylabel(Learning rate) plt.legend() plt.show()学习率变化曲线如下图所示 T_max设置为50所以0-50下降50-100上升以此类推。 5.ReduceLRonPlateau 功能监控指标当指标不再变化则调整。 torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, modemin, factor0.1, patience10, verboseFalse, threshold0.0001, threshold_moderel, cooldown0, min_lr0, eps1e-08)参数如下所示 modemin/max两种模式。factor调整系数。patience“耐心”接收几次不变化。cooldown“冷却时间”停止监控一段时间。verbose是否打印日志。min_lr学习率下限。eps学习率衰减最小值。 举个栗子 loss_value 0.5 accuray 0.9factor 0.1 mode min patience 10 cooldown 10 min_lr 1e-4 verbose Truescheduler_lr optim.lr_scheduler.ReduceLROnPlateau(optimizer, factorfactor, modemode, patiencepatience,cooldowncooldown, min_lrmin_lr, verboseverbose)for epoch in range(max_epoch):for i in range(iteration):# train(...)optimizer.step()optimizer.zero_grad()# if epoch 5:# loss_value 0.4scheduler_lr.step(loss_value)结果如下所示 Epoch 12: reducing learning rate of group 0 to 1.0000e-02. Epoch 33: reducing learning rate of group 0 to 1.0000e-03. Epoch 54: reducing learning rate of group 0 to 1.0000e-04.6.LambdaLR 功能自定义调整策略。 torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda, last_epoch-1)参数主要就一个 lr_lambda函数或list。 举个例子 lr_init 0.1weights_1 torch.randn((6, 3, 5, 5)) weights_2 torch.ones((5, 5))optimizer optim.SGD([{params: [weights_1]},{params: [weights_2]}], lrlr_init)lambda1 lambda epoch: 0.1 ** (epoch // 20) lambda2 lambda epoch: 0.95 ** epochscheduler torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda[lambda1, lambda2])lr_list, epoch_list list(), list() for epoch in range(max_epoch):for i in range(iteration):# train(...)optimizer.step()optimizer.zero_grad()scheduler.step()lr_list.append(scheduler.get_lr())epoch_list.append(epoch)print(epoch:{:5d}, lr:{}.format(epoch, scheduler.get_lr()))plt.plot(epoch_list, [i[0] for i in lr_list], labellambda 1) plt.plot(epoch_list, [i[1] for i in lr_list], labellambda 2) plt.xlabel(Epoch) plt.ylabel(Learning Rate) plt.title(LambdaLR) plt.legend() plt.show()结果如下图所示一个是每隔20轮学习率下降为0.1倍一个是指数衰减底为0.95
http://www.pierceye.com/news/135368/

相关文章:

  • 网站变灰兼容代码北京计算机培训学校
  • 网站导航包括海拉尔网站建设+网站设计
  • flashfxp 上传网站佛山哪里有网站开发
  • qq互联 网站开发济南建设集团有限公司官网
  • 网站开发兼职网站学校网站构建
  • 简约网站后台媒体网站开发
  • 广东营销网站建设网页设计理念及设计思路
  • 咋自己做网站桂林生活网官网首页
  • 电子商务网站建设的展望自己做壁纸的网站
  • 国外h5建站网站建设方案总结评语
  • 百度开放平台白城整站优化
  • 搜狗整站优化广州市网站建站
  • 最方便建立网站北京定制网络营销收费
  • 烟台放心的一站式网站建设桐梓网站建设
  • 如何高效的完成网站建设步骤美食分享网站建设策划书
  • 建立网站的软件网站建设数据库的购买
  • 建网站需要多大的宽带wordpress 分享后可见
  • 自建营销型企业网站阿里网 网站备案流程
  • 与网站建设相关的论文题目wordpress图片上文字
  • 怎样搭建网站视频教程58企业网站如何做
  • 比较有名的网站建设公司wordpress 字数
  • 网站内容资源建设渭南市建设项目
  • 网站设置的参数wordpress弹窗登录注册
  • 网课系统软件网站建设费用网站做vr的收费
  • 海宁做网站的公司seo怎么学在哪里学
  • 佛山做网站多少钱服务器学生
  • 自己建网站卖东西怎么进入wordpress修改界面
  • 网站建设与制作报价wordpress菜单怎么设置目录册
  • 学生免费建设网站建设网站是否等于开展网络营销
  • 旅游网站结构图网站编程图