Take a closer look what hook_fn does: it is called by the model during forward pass, and gets input (as parameter i) and output (as parameter o) of layer (model.classifier[4]) it was registered to as a hook. Hook functions are named this way because after been attached to some system, hooks get called by system itself.
‘Features’ is a final result of your model, which has Linear(4096,1) layer in the end. Thus, you’re collecting not intermediate outputs of layer model.classifier[4] but final outputs. You need to collect values inside hook function.