[ 组合替代实现 ]torch.nn.modules.module.register_module_forward_pre_hook¶
torch.nn.modules.module.register_module_forward_pre_hook¶
torch.nn.modules.module.register_module_forward_pre_hook(hook)
paddle.nn.Layer.register_forward_pre_hook¶
paddle.nn.Layer.register_forward_pre_hook(hook)
其中,PyTorch 为给全局所有 module 注册 hook,而 Paddle 为给单个 Layer 注册 hook, 具体如下:
参数映射¶
PyTorch | PaddlePaddle | 备注 |
---|---|---|
hook | hook | 被注册为 forward pre-hook 的函数。 |
转写示例¶
# PyTorch 写法
Linear = torch.nn.Linear(2, 4)
Conv2d = torch.nn.Conv2d(3, 16, 3)
Batch2d = torch.nn.BatchNorm2d(10)
torch.nn.modules.module.register_module_forward_pre_hook(hook)
# Paddle 写法
Linear = paddle.nn.Linear(2, 4)
Conv2d = paddle.nn.Conv2d(3, 16, 3)
Batch2d = paddle.nn.BatchNorm2D(10)
Linear.register_forward_pre_hook(hook)
Conv2d.register_forward_pre_hook(hook)
Batch2d.register_forward_pre_hook(hook)