【问题标题】:Fine Tuning Pretrained Model MobileNet_V2 in Pytorch在 Pytorch 中微调预训练模型 MobileNet_V2
【发布时间】:2019-12-08 15:30:50
【问题描述】:

我是 pyTorch 的新手,我正在尝试创建一个分类器,其中我有大约 10 种图像文件夹数据集,对于这个任务,我使用的是预训练模型 (MobileNet_v2),但问题是我无法更改 FC它的一层。没有 model.fc 属性。 谁能帮我做到这一点。 谢谢

【问题讨论】:

    标签: deep-learning classification pytorch pre-trained-model mobilenet


    【解决方案1】:

    MobileNet V2 source code 看来,这个模型最后有一个称为分类器的顺序模型。因此,您应该能够像这样更改分类器的最后一层:

    import torch.nn as nn
    import torchvision.models as models
    model = models.mobilenet_v2()
    model.classifier[1] = nn.Linear(model.last_channel, 10)
    

    很遗憾,我现在无法测试此代码。
    This 也是一个很好的参考,关于如何微调模型。

    【讨论】:

    • 实际上,模块torchvision.models没有mobilnet_v2的属性。目前型号为[resnet, alexnet, vgg, squeezenet, densenet, inception]
    • @AnubhavSingh,实际上自从最近的 torchvision 更新以来它确实如此。 pytorch.org/docs/stable/torchvision/models.html
    • 哦,我明白了。我的错。非常感谢。
    【解决方案2】:

    执行以下操作:

    import torch
    model = torch.hub.load('pytorch/vision', 'mobilenet_v2', pretrained=True)
    print(model.classifier)
    
    model.classifier[1] = torch.nn.Linear(in_features=model.classifier[1].in_features, out_features=10)
    print(model.classifier)
    

    输出:

    Sequential(
      (0): Dropout(p=0.2)
      (1): Linear(in_features=1280, out_features=1000, bias=True)
    )
    Sequential(
      (0): Dropout(p=0.2)
      (1): Linear(in_features=1280, out_features=10, bias=True)
    )
    

    注意:您需要torch >= 1.1.0 才能使用torch.hub

    【讨论】:

      【解决方案3】:

      MobilenetV2 实现要求num_classes(默认=1000)作为输入,并提供self.classifier 作为一个属性,它是一个torch.nn.Linear 层,输出维度为num_classes。您可以使用此属性进行微调。您可以自己查看code 以获得更好的理解。

      import torchvision.models as models
      model = models.mobilnet_v2(num_classes=10)
      

      【讨论】:

      • 很高兴知道还有这些额外的参数!但应该指出的是,使用 num_classes 参数会阻止下载 pre-trained 模型,这几乎就是这个问题的意义所在。此外,here 是代码的更新链接。
      猜你喜欢
      • 2021-11-18
      • 2017-06-05
      • 2019-09-11
      • 2020-02-07
      • 2019-07-17
      • 2018-02-20
      • 2021-10-29
      • 2021-04-05
      • 1970-01-01
      相关资源
      最近更新 更多