【Python】Hook函数相关知识点
发布时间
阅读量:
阅读量
在最近的程序调试过程中遇到了hook函数的问题,在此我对hook函数的理解仍存在困难...
1.hook函数概念
hook: 钩子,也就常称之为钩子函数/挂钩函数
维基百科: hook函数是计算领域中的专业术语,在软件开发中用于通过拦截模块间的函数调用、信息传递和事件传递来增强或扩展操作系统、应用程序或其他相关软件组件的行为的各种技术。
具体而言,处理被拦截的函数调用、事件、消息的代码,被称之为 hook。
2.Pytorch 的 Hook 优势
在不破坏输入输出结构的前提下,在不改变输入输出结构的情况下
实质:获取正向传播/反向传播的中间层的feature / gradient。
- 在forward操作之前注册hook,在forward操作完成后会自动触发。
- 必须先调用forward函数才能注册并使用该 hook。
- **f : hook_fn( module, input , output) : **变量-模块、模块输入、模块输出之间的关系会被记录。
- module.register_backward_hook( hook_fn)
- **b : hook_fn( module, grad_input , grad_output) : **记录模块梯度关系的函数会被调用。
【学习资源】
全部评论 (0)
还没有任何评论哟~
