Hi @Rosa,
Weights/parameters and features/activations are (usually) not the same thing. The features are (usually) the result of previous weights op features where op can be any binary operator: in Python, weights are contained in the operators and features are the results of operators.
In both cases you will be able to access them with hooks.
In the case of a loaded trained densenet169, you should first identify the classifier Linear layer by printing the architecture:
net = models.densenet169()
print(net)

which seems to be
net.classifier
Linear(in_features=1664, out_features=1000, bias=True)

If you wanna look into the input features and/or weights, your hook should look like this:
global classifier_input_features # to be able to access it anywhere
global classifier_weights
def hook_fn(module, input, output):
    global classifier_input
    global classifier_weights

    classifier_input_features = input
    classifier_weights = module.weight.data

     # you can use matplotlib or TensorboardX to visualize them

hook = net.classifier.register_forward_hook(hook_fn)

after that, yo can access  classifier_input_features and classifier_weights after the forward pass.