A custom computer vision primitive (get_pretrained_model() ) that facilities easy and smooth transfer learning (feature extraction AND fine-tuning) with ALL torchvision.models #1023
ChampPhil
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Before I explain, I want to give credit to @Rick-29 - who created a transfer learning function
that can returns a pre-trained model from
torchvision.models
with its output layer adjusted. The link to that post is here: #675The limitations of this function are:
It does not support fine-tuning, and returns a model with all layers frozen except the output layer.
The pre-trained models within
torchvision.models
can have different naming conventions/organization. For example, torchvision.models.resnet18 modules' are:['conv1', 'bn1', 'relu', 'maxpool', 'layer1', 'layer2', 'layer3', 'layer4', 'avgpool', 'fc']
and torchvision.models.efficientnet_b0 modules' are['features', 'avgpool', 'classifier']
. This drastic difference would have caused errors in @Rick-29's function and made it only work on certain pre-trained models and error out on others.I propose a new, optimized function that
torchvision.models
assert
functionalityBeta Was this translation helpful? Give feedback.
All reactions