微调预训练模型MobileNet_V3_Large PyTorch



我试图添加一个图层来微调MobileNet_V3_Large预训练模型。我看了看PyTorch文档,但他们没有这个特定的预训练模型的教程。我确实发现我可以用:

微调MobileNet_V2
model_ft =models.mobilenet_v2(pretrained=True,progress=True)

model_ft.classifier[1] = nn.Linear(model_ft.last_channel, out_features=len(class_names))

但是我不确定MobileNet V3的线性层应该是什么样子。

对于V3 Large,您应该执行

model_ft = models.mobilenet_v3_large(pretrained=True, progress=True)
model_ft.classifier[-1] = nn.Linear(1280, your_number_of_classes)

(这也适用于V2,但你发布的代码将不适用V3正确)。

要查看网络结构,只需执行

print(model_ft.classifier)

print(model_ft)

对于微调,人们通常(但不是总是)冻结除了最后一层以外的所有层。同样,冻结的层是model_ft.classifier[-1]而不是model_ft.classifier[1]

你是否应该冻结层取决于你有多少数据,最好是经验决定。

最新更新