概要: 采用nni进行Speed Up的时候,报错ValueError: Modules that have backward hooks assigned can't be compiled: Conv2d(3, 18, kerne)
问题定位:
错误提示含义大致为模型有backward hook,无法编译。定位到代码里:
self.p_conv.register_backward_hook(self._set_lr)
代码原形为torch.nn.Module.register_backward_hook,针对nn.Module这个对象,作用为提取中间层参数,比如梯度之类的。详细介绍参考pytorch笔记:pytorch中的钩子(Hook)有何作用?_Activewaste-CSDN博客_hook pytorch
解决方法:
只能是注释掉这句代码了,好在对我的模型没啥影响。其实把问题的产生原因讲清楚是最好的,奈何当前能力有限,只能先搁置了。