迁移学习准确性的令人困惑的结果

塞纳仙女座

我刚刚根据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 层时会得到更差的分类结果。不应该修改吗?

托马斯

网络在 20 个类之间找到匹配类可能比在两个类之间更难。

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

Finetunnig 也将更长,因此如果您在收敛后但在固定数量的 epoch 之后没有停止它,那么如果您用 20 个类进行更长时间的训练,您可以获得更好的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章