pytorch .item_pytorch + SGD
梯度下降是模型优化常用方法,原理也比较简单,简言之就是参数沿负梯度方向更新,参数更新公式如下。
我们将使用pytorch来试验下这个方法。
首先先生成模拟数据。
x1
目标模型表达式,需要优化的参数为
初始化需要优化的参数
w1
损失函数使用平方损失
平方损失的梯度计算比较简单,根据链式法则,容易计算
因此梯度更新函数如下,
def
使用随机梯度下降法,对每一个样本计算梯度,并更新参数
def
初始使用lr = 0.001发现,w1和w2并没有拟合到预期的值。做出的图显示,loss没有拟合的趋势,提示我们选择的学习率过大,导致难以拟合。
调整学习率到0.0001之后,结果拟合的很好,w1和w2的值也和预期一致。
以上就是使用SGD的基本流程,不过上述步骤pytorch都帮我们封装好了,不需要这么麻烦,下面是pytorch的自动求导版本。
首先是几个概念。
optim(优化器)
pytorch已经封装好了很多常用的优化器,可调用step成员函数来对参数进行更新。
常用优化器的包括:SGD, Adam, Adagrad, Rprop。
backward(方向传播)
自动梯度计算,省了很大麻烦!
backward函数会根据Variable的成员变量requires_grad来觉得是否需要对该变量计算梯度。
计算完的梯度保存在成员变量grad中。
注意: backward计算的梯度不会自动清零,而是累加到上一次的梯度中,所以每次更新参数,都需要对梯度清零一次。
有两种方式:
- 调用optim的zero_grad函数
- 手动对变量梯度清零. 例:w1.grad.data.zero_()
以下就是简易版本。
def
下篇文章介绍下常用的优化器~
pytorch .item_pytorch + SGD相关推荐
- pytorch optim.SGD
1.应用 import torch import torch.nn as nnoptimizer = torch.optim.SGD(model.parameters(), lr=0.1, momen ...
- pytorch中SGD源码解读
调用方法: torch.optim.SGD(params, lr=<required parameter>, momentum=0, dampening=0, weight_decay=0 ...
- 基于Pytorch源码对SGD、momentum、Nesterov学习
目前神经网络的监督学习过程通常为: 数据加载(load)进神经网络 经过网络参数对数据的计算,得出预测值(predict) 根据预测值与标注值(label)之间的差距,产生损失(loss) 通过反向传 ...
- Pytorch optimizer.step() 和loss.backward()和scheduler.step()的关系与区别
参考 Pytorch optimizer.step() 和loss.backward()和scheduler.step()的关系与区别 - 云+社区 - 腾讯云 首先需要明确optimzier优化 ...
- 莫烦pytorch学习之问题记录与总结
目录 一.三分类问题 二.创建网络结构部分,还有另一种形式,如下: 三.pytorch中save_model和load_model: 四.batch批量数据读取 五.pytorch测试SGD.Mome ...
- 构建一个增量推荐系统
2020-04-18 10:06:17 作者:Dimitris Poulopoulos 编译:ronghuaiyang 导读 推荐系统应该要可以适应发生的变化. 需求或先决条件 虽然我会尽量少用数学术 ...
- torch之optimizer.step() 和loss.backward()和scheduler.step()的关系与区别
torch之optimizer.step() 和loss.backward()和scheduler.step()的关系与区别 由于接触torch时间不久,所有对此比较困惑,遇到如下博文解释十分详细,故 ...
- 一种崭新的长尾分布下分类问题的通用算法|NeurIPS 2020
↑ 点击蓝字 关注视学算法 作者丨汤凯华@知乎 来源丨https://zhuanlan.zhihu.com/p/259569655 编辑丨极市平台 本文主要介绍我们组今年被NeurIPS 2020接收 ...
- 深度学习推荐系统综述
本周学习情况 学习内容概述: 学习了FM与深度学习结合的相关模型 学习了注意力机制与深度学习结合的相关模型 学习了强化学习与深度学习结合的相关模型 对学习的模型进行归纳总结以便以后复习查看 使用Pyt ...
最新文章
- C语言实现将彩色bmp图像转化为灰图、灰度图像反色
- 一位数据挖掘成功人士给数据挖掘在读研究生的建议
- 面试官:哪些场景会产生OOM?怎么解决?
- 产品打包工具的制作,ant,编译源码,打jar包,打tag,打war包,备份release版本等...
- python 解析XML xml.dom
- mockito_Mockito:为什么您仍然应该欣赏InjectMocks注释
- PostgreSQL在何处处理 sql查询之三十八
- python最长匹配_二分图最大匹配:匈牙利算法的python实现
- win10树莓派改ip_在树莓派2上安装 Windows 10
- 文件管理器 Root Explorer v2.9.4 零售完全版
- 9_林业专题图的制作
- 蓝牙芯片技术原理详解
- 多示例论文泛读:Revisiting Multiple Instance Neural Networks (2016 mi-Net MI-Net)
- 浏览器地址栏中文乱码问题
- smith 图中Q值和阻抗匹配
- 手机屏幕坏了怎么把数据导出来_苹果手机的语音备忘录怎么导出来?
- 整理的遥感期刊,SCI检索,3/4区居多
- 座席成功所需的 5 项数字客户服务技能
- 分页第一页用0还是1_计算机用0 和1刻画文字、图片和声音
- 组态软件开发工程的一般步骤
热门文章
- 苏炳添招研究生了!上课画面曝光,网友:千万不要逃课……
- 剑桥大学:机器学习模型部署都有哪些坑?
- 无人机航拍记录生活真爽,包邮送一个!
- 南开校长曹雪涛团队12篇论文被调查“可信性”,此前被举报实验图片有PS痕迹...
- Python 官方报告:哪些库最受欢迎、PyCharm 比 VScode更香?
- 北大数学天才毕业后坚持出家:理想现实间的挣扎
- CSS盒子模型(border、padding、margin、圆角边框、盒子阴影、文字阴影、新闻列表综合案例、新浪导航栏案例)
- python进程执行带有参数的任务(args、kwargs)
- 菜鸡记录-王爽-汇编语言-实验十(编写子程序-显示字符串)
- CNN模型之MobileNet