迁移学习准确性的混乱结果

2024-04-19 10:29:31 发布

您现在位置:Python中文网/ 问答频道 /正文

根据pytorch网站(this)文档中的教程,我刚刚启动了一个图像分类项目

model_ft = models.resnet50(pretrained=True)
num_ftrs = model_ft.fc.in_features
model_ft.fc = nn.Linear(num_ftrs, 20)

我知道fc层应该被改变的原因,因为我的项目需要对20个类进行分类,所以我把参数从2改为20。但是,我只得到了大约60%的准确率。当我不这样更改fc层时:

model_ft = se_resnet50(pretrained = True)

结果表明,该方法的准确率达到93.75%,与以往的结果相比有了很大的提高

我只是不明白为什么我在修改fc层时会得到更差的分类结果。难道不应该修改吗


Tags: 项目文档truemodel网站分类pytorchthis
1条回答
网友
1楼 · 发布于 2024-04-19 10:29:31

对于网络来说,在20个类之间找到匹配类可能比在两个类之间找到匹配类更困难

例如,如果你给它一个狗的图像,它需要将它分为猫,狗和马,它可能会发送60%的猫,30%的狗,10%的马,然后是错误的 而如果它只需要在狗和马之间进行分类,它可能会给出75%的狗,25%的马,然后是莱特

finetunnig也会更长,所以如果你用20个类进行更长时间的训练,你可能会有更好的结果,如果你没有在收敛后停止训练,而是在固定的次数之后

相关问题 更多 >