torch.optim.SGD参数详解
随机梯度下降法
$\theta_{t} \leftarrow \theta_{t-1}-\alpha g_{t}$
Code:
optimzer = torch.optim.SGD(model.parameters(),lr = 0.001)
权重衰减
$\theta_{t} \leftarrow(1-\beta) \theta_{t-1}-\alpha \mathbf{g}_{t}$
其中 $\mathrm{g}_{t}$ 为第 $t$ 步更新时的梯度, $\alpha$ 为学习率, $\beta$ 为权重衰减系数,一般取值比较 小,比如 0.0005。

Code:
optimzer = torch.optim.SGD(model.parameters(),lr = 0.001,weight_decay=0.0005)
动量法
动量(Momentum)是模拟物理中的概念.一个物体的动量指的是该物体 在它运动方向上保持运动的趋势,是该物体的质量和速度的乘积.动量法(Momentum Method)是用之前积累动量来替代真正的梯度.每次迭代的梯度可以 看作加速度. 在第 $t$ 次迭代时,计算负梯度的“加权移动平均”作为参数的更新方向,
$\Delta \theta_{t}=\rho \Delta \theta_{t-1}-\alpha g_{t}=-\alpha \sum\limits_{\tau=1}^{t} \rho^{t-\tau} g_{\tau}$

Code:
optimzer = torch.optim.SGD(model.parameters(),lr = 0.001,momentum =0.001,dampening=0.001)
Nesterov加速梯度
Nesterov 加速梯度(Nesterov Accelerated Gradient,NAG)是一种对动量 法的改进[Nesterov, 2013; Sutskever et al., 2013],也称为Nesterov动量法(Nesterov Momentum)
在动量法中, 实际的参数更新方向 $\Delta \theta_{t}$ 为上一步的参数更新方向 $\Delta \theta_{t-1}$ 和当 前梯度的反方向 $ -g_{t}$ 的叠加. 这样, $\Delta \theta_{t}$ 可以被拆分为两步进行, 先根据 $\Delta \theta_{t-1}$ 更 新一次得到参数 $ \hat{\theta}$ , 再用 $ -g_{t}$ 进行更新.
这样,合并后的更新方向为
$\Delta \theta_{t}=\rho \Delta \theta_{t-1}-\alpha \mathfrak{g}_{t}\left(\theta_{t-1}+\rho \Delta \theta_{t-1}\right)$
其中 $\mathfrak{g}_{t}\left(\theta_{t-1}+\rho \Delta \theta_{t-1}\right)$ 表示损失函数在点 $\hat{\theta}=\theta_{t-1}+\rho \Delta \theta_{t-1}$ 上的偏导数.


Code:
optimzer = torch.optim.SGD(model.parameters(),lr = 0.001,momentum =0.001,nesterov=0.01)
torch.optim.SGD参数详解的更多相关文章
- torch.optim.SGD()各参数的解释
看pytorch中文文档摘抄的笔记. class torch.optim.SGD(params, lr=, momentum=0, dampening=0, weight_decay=0, neste ...
- Nginx主配置参数详解,Nginx配置网站
1.Niginx主配置文件参数详解 a.上面博客说了在Linux中安装nginx.博文地址为:http://www.cnblogs.com/hanyinglong/p/5102141.html b.当 ...
- iptables参数详解
iptables参数详解 搬运工:尹正杰 注:此片文章来源于linux社区. Iptalbes 是用来设置.维护和检查Linux内核的IP包过滤规则的. 可以定义不同的表,每个表都包含几个内部的链,也 ...
- chattr的常用参数详解
chattr的常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际生产环境中,有的运维工程师不得不和开发和测试打交道,在我们公司最常见的就是部署接口.每天每个人部署的 ...
- mha配置参数详解
mha配置参数详解: 参数名字 是否必须 参数作用域 默认值 示例 hostname Yes Local Only - hostname=mysql_server1, hostname=192.168 ...
- $.ajax()方法所有参数详解;$.get(),$.post(),$.getJSON(),$.ajax()详解
[一]$.ajax()所有参数详解 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注 ...
- linux PHP 编译安装参数详解
linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...
- 【转】jqGrid 各种参数 详解
[原文]http://www.cnblogs.com/younggun/archive/2012/08/27/2657922.htmljqGrid 各种参数 详解 JQGrid JQGrid是一个 ...
- HTML滚动字幕代码参数详解及Js间隔滚动代码
html文字滚动代码 <marquee style="WIDTH: 388px; HEIGHT: 200px" scrollamount="2" dire ...
随机推荐
- 【C# .Net GC】sos.dll 混合模式调试(托管调试+本机)
当我们想使用本机调试器(如CDB或WinDBG)调试.NET应用程序时,我们必须在本机调试器和托管世界之间使用"桥",因为本机调试器本身并不理解托管代码.它是本机调试器.为了提供这 ...
- 【C# .Net GC】垃圾回收算法 应用程序线程运行时,
触发垃圾回收算法的条件 触发垃圾回收的条件 当满足以下条件之一时将发生垃圾回收: 操作系统报告低内存请看(将触发第2代垃圾回收). 这是通过 OS 的内存不足通知或主机指示的内存不足检测出来. 由托管 ...
- 无法打开备份设备,出现操作系统错误 5(拒绝访问)(sql server备份)
问题:无法打开备份设备 .出现操作系统错误 5(拒绝访问) 原因:你用sqlserver进行备份的时候,必须要是完整的路径,操作sqlserver的和磁盘有关的路径都必须要到文件名这一层. 解决方案: ...
- 60天shell脚本计划-9/12-渐入佳境
--作者:飞翔的小胖猪 --创建时间:2021年3月8日 --修改时间:2021年3月12日 说明 每日上传更新一个shell脚本,周期为60天.如有需求的读者可根据自己实际情况选用合适的脚本,也可在 ...
- Java基础--序列化和反序列化
作用:在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存.比如最常见的是Web服务器中的Session对象,当有 10万用户并发访问,就有可能出现10万个Sessi ...
- 文件上传漏洞靶机upload-labs(1到10)
前言 项目地址:https://github.com/c0ny1/upload-labs pass-01(前端验证) 绕过方法:https://www.cnblogs.com/bk76120/p/12 ...
- python面试_总结01_概念和内置高阶函数
- 简答题 1.请谈谈Python中is 和 == 的区别(代码演示) is用于比较两个变量是否引用了同一个内存地址,is表示的是对象标识符(object identity),作用是用来检查对象的标识 ...
- Java 中线程池的 7 种创建方式!
在 Java 语言中,并发编程都是通过创建线程池来实现的,而线程池的创建方式也有很多种,每种线程池的创建方式都对应了不同的使用场景,总体来说线程池的创建可以分为以下两类: 通过 ThreadPoolE ...
- LeetCode-028-实现 strStr()
实现 strStr() 题目描述:实现 strStr() 函数. 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下 ...
- gitee中项目到运行操作,包括:打包、热部署、数据库操作
使用的工具:window10.IDEA 2018.2.3 .navicat110_premium.Git-2.23 1.idea导入gitee代码 复制项目地址 选择git工具 粘贴地址,点击clon ...