I want to transfer-learn from Resnet18 model for a binary classification. The first implementation is:
model = models.resnet18(pretrained=True) model.avgpool = nn.AvgPool2d(3, stride=1) model.fc = nn.Linear(512, 1)
Then I try to use a function so I can return different kinds of models. The second implementaion:
def getModel(name, pretrained=False): if name == 'resnet18': model = models.resnet18(pretrained=pretrained) model.avgpool = nn.AvgPool2d(3, stride=1) model.fc = nn.Linear(512, 1) return model model = getModel('resnet18', pretrained=True)
I tried several times and the second implementation has worse performance(val acc=0.88) than the first one(val acc=0.9). I don’t understand why this happens.