ai-infra-interview-305

第 11 题:PyTorch的hook机制有哪些?forward_pre_hookbackward_hook的应用场景?

题目

PyTorch的hook机制有哪些?forward_pre_hookbackward_hook的应用场景?


完整讲解

一、Hook 有哪些?

前两个在 Module 上注册(module.register_forward_pre_hook(...) 等),backward_hook 同样在 Module 上注册,在反向传播经过该 module 时被调用。


二、forward_pre_hook 能干什么?

典型场景:调试时看某一层入口的 tensor 长什么样、是否数值异常;或在做输入预处理/增强时统一在某一层前做。


三、forward_hook 能干什么?

典型场景:可视化某层特征图、做知识蒸馏时取教师中间层输出、或做剪枝/敏感度分析时记录每层输出。


四、backward_hook 能干什么?

典型场景:调试「某层不更新」时看该层梯度是否为空或过小;或实现 per-layer 梯度缩放/裁剪。


五、使用注意


面试要点


记忆要点

  1. forward_pre_hook:入口,改/看输入;forward_hook:出口,改/看输出;backward_hook:反向,改/看梯度。
  2. 应用:调试、可视化、蒸馏、梯度检查与修改、剪枝敏感度。
  3. 只做轻量操作;改 tensor 注意图和形状。
返回模块 返回总览