How to register backward hook at the last convolutional layer of resnet50

Hello @ptrblck , I have updated my code:

class ResNet(nn.Module):
    def __init__(self):
        super(ResNet, self).__init__()
        
        self.resnet = resnet50(pretrained=True)
        # isolate the feature blocks
        self.features = nn.Sequential(self.resnet.conv1,
                              self.resnet.bn1,
                              nn.ReLU(),
                              nn.MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False),
                              self.resnet.layer1, 
                              self.resnet.layer2, 
                              self.resnet.layer3, 
                              self.resnet.layer4)
        
      
        for param in self.resnet.layer4[2].parameters():
            param.requires_grad_(True)
       # average pooling layer
        #self.features = nn.Sequential(self.resnet.layer4) 
        
        self.avgpool = self.resnet.avgpool
    
        
        # classifier
        self.classifier = self.resnet.fc
    
    # gradient placeholder
        self.gradient = None
        
    def activations_hook(self, grad):
        self.gradients = grad
        
    def get_gradient(self):
        return self.gradient
    
    def get_activations(self, x):
        return self.features(x)
    
    def forward(self, x):
        x = self.features(x)
        h = x.register_hook(self.activations_hook)
        
        # complete the forward pass
        x = self.avgpool(x)
        x = x.view((1, -1))
        x = self.classifier(x)
        return x
But I am getting 

RuntimeError: mat1 and mat2 shapes cannot be multiplied (1x65536 and 2048x1000)

so I updated my classifier: (I have 20 classes)

self.classifier = nn.Sequential(nn.Linear(65536, 20), nn.Dropout())

but I am getting this error:

ValueError: Target size (torch.Size([32, 20])) must be the same as input size (torch.Size([1, 20]))

I tried self.classifier = nn.Sequential(nn.Linear(2048, 20), nn.Dropout())

and now this error appears:
RuntimeError: mat1 and mat2 shapes cannot be multiplied (1x65536 and 2048x20)

Any advice for me? Thank you in advance