ah! i was wrongly freezing the parameters of fc also i guess.
    self.model = models.resnet50(pretrained=True)
    for param in self.model.parameters():
      param.requires_grad = False
    # 30 classes
    num_ftrs = self.model.fc.in_features
    self.model.fc = nn.Linear(num_ftrs, 30)

this works