I guess something like:
global_grad_saver = {}

# Have a hook fn that saves into the global dict with a given name
def get_hook(param_name):
    def hook_fn(grad):
        global_grad_saver[param_name] = grad
    return hook_fn


# In your forward code:
    def forward(self, x):
        x = self.Block1(x)
        x.register_hook(get_hook("block1_output"))
        x = self.Block2(x)
        x.register_hook(get_hook("block2_output"))
        # Rest of your forward function


# For a given module:
def get_fw_hook(mod_name):
    def fw_hook(mod, input, output):
        output.register_hook(get_hook(mod_name + "_output"))
    return fw_hook

# Before running the forward of your model
mod.Block1[0].register_forward_hook("Block1.conv0")
mod.Block1[2].register_forward_hook("Block1.conv2")