@ptrblck: when I try the Identity method you have suggested, my outputs are way smaller (1280 for mobilenet, which is the size of the classfier input) - but the output of the  (2): ReLU6(inplace=True)  when I do self. pt_model=self.pt_model.features seems 20480. Bizzare!
May I ask what you mean by a feature vector? To me this (2): ReLU6(inplace=True)  is a feature vector. No?
Also, for mobilenet, I see:
MobileNetV2(
  (features): Sequential(
...

so they are all sequential right?
In any case, I think the Identity method is better since it preserves the original instamce and I would prefer this if I can understand the size issue!
When I look at the mobilenet arch, towards the end, I seem to have:
    (18): ConvBNReLU(
      (0): Conv2d(320, 1280, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(1280, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
  )
  (classifier): Sequential(
    (0): Dropout(p=0.2, inplace=False)
    (1): Linear(in_features=1280, out_features=1000, bias=True)
  )
)
Sequential(
  (0): Dropout(p=0.2, inplace=False)
  (1): Linear(in_features=1280, out_features=1000, bias=True)
)


By turning the classfier to Identity, my output at the end should be the size of (2): ReLU6(inplace=True) - is that not right?
Thanks again @ptrblck.