Pytorch register_hook到Keras的实现

时间:2018-03-14 11:05:52

标签: tensorflow keras pytorch

我试图将以下项目实施到Tensorflow / Keras中。 https://github.com/jacobgil/pytorch-pruning

我很难理解register_hook的作用?它可以在finetune.py第66行找到。 x.register_hook(self.compute_rank)

我已经搜索了有关此功能的明确解释,并尝试找到Keras等效物,没有任何运气。你对这些问题有答案吗?

1 个答案:

答案 0 :(得分:0)

首先,首先是文档:

http://pytorch.org/docs/master/autograd.html#torch.autograd.Variable.register_hook

这允许您将方法注册到Variable Variable更新时调用的.grad,即在后向传递中,并取{ {1}}作为输入。如果您只是想要读取渐变来执行其他操作,则该方法可以返回将替换原始gradVariable的{​​{1}}。 如果以这种方式更新渐变,则计算图中的更低节点会在向后传递中看到新的更新渐变,并将使用更新的值计算各自的渐变。

我不是Tensorflow专家,但.grad装饰器(documentation)似乎也可以这样做,例如,请参阅this answer