当前位置:网站首页>pytorch 23 hook的使用与介绍 及基于hook实现即插即用的DropBlock
pytorch 23 hook的使用与介绍 及基于hook实现即插即用的DropBlock
2022-06-27 01:58:00 【万里鹏程转瞬至】
Hook(钩子):字面意思就是勾住一个函数,在其执行前修改输入数据或其他操作,或者在其执行后修改输出输出或其他操作。通过hook操作可以锁定一个layer对象(model中的模块)的生命周期,监视其执行状态和执行结果。在pytorch中,提供丰富的hook api,让我们可以监听并修改tensor在模型forword中的状态。在本博文中,基于hook操作实现了即插即用的Dropout操作,支持dorpblock、dropout2d等系列Dropout操作。
在pytorch中layer的生命周期可以简单的理解为:定义->初始化->前向传播->反向传播->销毁。其中前向传播和反向传播是其执行流程中最重要的部分,通过对前向传播和反向传播进行hook操作,可以获取数据在模型中的执行状态(比如实现CAM)并进行修改操作(比如实现梯度裁剪)。
Grad-CAM:基于梯度的类别响应特征可视化。通过hook操作获取相应layer的forward流程中feature map的output和backward流程中grad的output,然后将feature_map_output与backward_grad_output中相应的元素相乘,然后实现类别响应特征可视化。
梯度裁剪:对layer的backward流程中grad的output的值进行约束,使其不能大于特定值从而导致梯度爆炸。
1、pytorch中的hook接口
pytorch针对Model、modules.module、ScriptModule和Tensor 4种模块分别提供了相应的hook接口。其中针对于Tensor只提供了一个用于反向传播的hook,因为tensor的前向传播流程对用户是完全可见的。针对于Model、modules.module、ScriptModul
边栏推荐
- hibernate 根据方言生成sql
- Oracle/PLSQL: Ltrim Function
- CVPR2022 | PointDistiller:面向高效紧凑3D检测的结构化知识蒸馏
- memcached基础13
- 企业数字化转型:信息化与数字化
- I encountered some problems when connecting to the database. How can I solve them?
- Reading a book in idea is too much!
- C语言--职工信息管理系统设计
- Dameng database installation
- Shell script series (1) getting started
猜你喜欢

Look! In June, 2022, the programming language ranking list was released! The first place is awesome

速看!2022年6月编程语言排行榜出炉!第一名太牛啦

“所有专业都在劝退”,对大学生最友好的竟然是它?

别被洗脑了,这才是90%中国人的工资真相

浏览器缓存

lottie.js创意开关按钮动物头像

Svg drag dress Kitty Cat

dat.gui.js星星圆圈轨迹动画js特效

为什么传递SPIF_SENDCHANGE标志SystemParametersInfo会挂起?

Canvas particles: mouse following JS effect
随机推荐
Oracle/PLSQL: VSize Function
Reading a book in idea is too much!
Oracle/PLSQL: Ltrim Function
Would rather go to 996 than stay at home! 24 years old, unemployed for 7 months, worse than work, no work
TopoLVM: 基于LVM的Kubernetes本地持久化方案,容量感知,动态创建PV,轻松使用本地磁盘
hibernate 根据方言生成sql
【系统分析师之路】第六章 复盘需求工程(案例论文)
memcached基础10
Arbre binaire OJ sujet
Detailed explanation of ThreadLocal
I encountered some problems when connecting to the database. How can I solve them?
Dameng database installation
Oracle/PLSQL: Trim Function
Oracle/PLSQL: Replace Function
d的appendTo包装
cookie,sessionstorage,localstorage区别
Summer planning for the long river
Summary of config mechanism and methods in UVM (1)
Why pass SPIF_ Sendchange flag systemparametersinfo will hang?
执念斩长河暑期规划