pytorch梯度裁剪(Clipping Gradient):torch.nn.utils.clip_grad_norm_torch 梯度裁剪_Wanderer001的博客-程序员秘密

技术标签: Pytorch  机器学习  计算机视觉  深度学习  

参考   详解PyTorch中的ModuleList和Sequential的区别 - 云+社区 - 腾讯云

torch.nn.utils.clip_grad_norm(parameters, max_norm, norm_type=2)

1、梯度裁剪原理(http://blog.csdn.net/qq_29340857/article/details/70574528)

 既然在BP过程中会产生梯度消失/爆炸(就是偏导无限接近0,导致长时记忆无法更新),那么最简单粗暴的方法,设定阈值,当梯度小于/大于阈值时,更新的梯度为阈值,如下图所示:
这里写图片描述

优点:简单粗暴
缺点:很难找到满意的阈值

2、nn.utils.clip_grad_norm(parameters, max_norm, norm_type=2)

这个函数是根据参数的范数来衡量的

Parameters:

    • parameters (Iterable[Variable]) – 一个基于变量的迭代器,会进行归一化(原文:an iterable of Variables that will have gradients normalized)
    • max_norm (float or int) – 梯度的最大范数(原文:max norm of the gradients)
    • norm_type(float or int) – 规定范数的类型,默认为L2(原文:type of the used p-norm. Can be'inf'for infinity norm)

Returns:参数的总体范数(作为单个向量来看)(原文:Total norm of the parameters (viewed as a single vector).)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36670529/article/details/113676263

智能推荐

C++ Game NPC任务基本信息查询_!chen的博客-程序员秘密

/ NPC身上可提交任务表。//返回的表数据中包括SceneID、NpcList、ItemID、AreaPoints数据项,根据模板类型不同提取不同数据处理,任务可提交时仅返回提交npc。ConsoleLog("QuestQuery", "警告:任务ID与父任务ID一样(%d)", quest_id);//设置所有兄弟任务及兄弟任务后续所有任务状态为关闭&设置自己展开。

Javascript基础知识体系化学习总结(三)作用域和闭包_帝江学者的博客-程序员秘密

Javascript基础知识体系化学习总结(三)作用域和闭包一、作用域1.作用域是一个变量的合法使用范围。2.作用域分为全局作用域(在哪里都能使用该变量,如document、window)、函数作用域(只能在当前函数使用该变量)、块级作用域(由let/const搭配{}构成)。二、自由变量1.自由变量是指在当前作用域没有定义但是被使用了。2.自由变量的查找规则是在当前作用域向上一层层查找。三、闭包1.闭包有两种情况:函数作为返回值返回或者函数作为参数被传入。2.闭包中所有自由变量的值是在函

最新跑通:使用iceberg-master分支构建支持Flink1.12的iceberg版本_Better~Me的博客-程序员秘密

目前iceberg官网是不支持Flink1.12版本的,但是iceberg社区代码中已经支持了Flink1.12版本,因此找到iceberg代码地址,下载iceberg-master分支到本地,修改build.gradle中仓库地址为国内地址,修改version.props文章中Hadoop版本为3.1.3,输入命令:./gradlew build -x testbuild.gradle:version.props:发现报错如下:解决办法:在ic...

PWM波形输出--STM32F103_咩咩叫的闲鱼的博客-程序员秘密

目录PWM简介相关配置用STM32F103输出一路PWM波形参考PWM简介PWM是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调 制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控 制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成 为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信, 功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些 音频放大器,因此学习PWM具有十分重要的现实意义。 其实我们也可以这样理解,PWM是一种

mysql增量查询_mysql – 基于GROUP BY添加增量字段的查询_xrxiong的博客-程序员秘密

一个)您可以使用随每行递增的变量,并使用每个user_ID重置以获取行计数.SELECT ID,User_ID,`Order`FROM ( SELECT @r:= IF(@u = User_ID,@r + 1,1) AS `Order`,ID,@u:= User_IDFROM Photos,(SELECT @r:= 1) AS r,(SELECT @u:= 0) AS uORD...

随便推点

计算机硬件与外设教材,[精华]计算机硬件与外设.doc_江湖上都叫我big飞的博客-程序员秘密

[精华]计算机硬件与外设.doc目 录TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc288406814" 《计算机组装与维护》课程标准 PAGEREF _Toc288406814 \h 1HYPERLINK \l "_Toc288406815" 《智能卡技术》课程标准 PAGEREF _Toc288406815 \h 5HYPERLINK \l "_Toc288...

java随机数陷阱_Wolf-Z的博客-程序员秘密

public class RandomTrap { static StringBuffer stringBuffer=new StringBuffer('D');//D被作为Int值传入 static StringBuffer stringBuffer2=new StringBuffer("AB"); public static void main(String[] args...

Proteus仿真STM32F103R6输出正弦波_stm32f103r6单片机介绍_541板哥的博客-程序员秘密

(1)简介本文介绍基于Proteus软件仿真实现STM32F103R6单片机输出PWM波形(其他子型号单片机类似)Proteus软件选用Proteus8.8版本及以上完整仿真文件及程序代码链接CSDN下载:https://download.csdn.net/download/u011816009/85149272百度网盘下载:链接:https://pan.baidu.com/s/1ORu1_6OnpYKc70L02IYk2Q提取码:1m2f(2)仿真文件(完整见文末)...

STM32定时器方法输出PWM波形_stm32f103捕获pwm频率_泡面会在片场冒险的博客-程序员秘密

这里写目录标题一、PWM的简要介绍二、定时器输出的简介绍1.PWM的工作过程2.PWM的通道3.定时器3的输出通道引脚TIM3_CH1:PA6,完全重映像PC6三、相关准备与配置1.寄存器的配置2.Keil实现仿真功能的设置四、输出实现1.定时器TIM1的初始化2.main函数3.结果展示五、参考资料一、PWM的简要介绍PWM(脉冲宽度调制)控制技术通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。PWM 控制的基本原理冲量相等而开头不同的窄脉冲加在具有惯性的环节上时,其效果

【Dubbo】dubbo的github地址_xianqi_h的博客-程序员秘密

dubbo的GitHub地址,官方提供的资源https://github.com/apache/incubator-dubbo

ASP.NET Core如何限制请求频率_嗯啦啦啦嗯的博客-程序员秘密

ASP.NET Core如何限制请求频率,为了防止恶意请求,我们往往会对接口请求的频率做限制,比如请求间隔,一段时间内请求的次数,针对部分IP做出不同的限制策略如何去限制请求频率不需要我们去实现,用上AspNetCoreRateLimit轮子就好了????Github地址:https://github.com/stefanprodan/AspNetCoreRateLimitN...

推荐文章

热门文章

相关标签