Hi,
The backward hooks for nn.Modules are not working properly at the moment (should be fixed soon).
The gradients that you see here are not the ones you expect.
To check gradients, I would add hooks inside the forward function like:
def get_hook_fn(name)
    def hook(grad):
        print("grad for {}".format(name))
        print(grad)
    return hook

class fcl(nn.Module):
    def forward(self, x):
        x.register_hook(get_hook_fn("x"))
        out = self.model(x)
        out.register_hook(get_hook_fn("out"))
        return out

For your forward value, don’t forget that a Linear layer has bias