Difference between model.children() and model.features

I am using a pretrained mobilenet as follows :

model = torchvision.models.mobilenet_v2(pretrained=True)

model.children() gives all the layers, including the last classification head.
However , model.features gives all the layers excluding the classification head.
Why is this so? Are there any cases where both give the same result?
I would also be thankful if anyone pointed me to the PyTorch documentation for .features (I couldn’t seem to find it).

model.features is defined inside the model’s __init__ method and thus not a general attribute of nn.Modules.
Depending how you are designing your model you might want to create certain “blocks” e.g. features, classifier etc. In autoencoder-like models you would most likely find a model.encoder and model.decoder attribute.