Hello,
The hooks are targeting distinct non overlapping partitions of the kernels in the output channel dimensions so that’s not the issue. Notice the difference in the indexing grad_clone[:20] vs grad_clone[20:]. If I begin with hook_batch_2 and then try to set hook_batch_1 a different set of weights (the ones that correspond to kernel_weight[:20]) get updated so it’s a matter of which hook gets set first.
After the first hook is set, independently of which one it is, when I set the following one, the behavior of the first one remains despite the print indicating that the new one has been set.