Advertisement

【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)

还没有任何评论哟~