0

我是 python 新手,所以对于我的大学期末项目,我使用 EfficientNet 将成熟棕榈油分为 4 类。我总共有 5852 个训练数据(每个 1463 个)和 132 个测试数据(每个 33 个)。我使用了来自互联网的代码。但结果远非好。我已经添加了 layers.dropout 以防止/避免欠拟合。我还使用 imagenet 进行迁移学习。有什么解决方案可以改善结果吗?

编辑:我已经将我的代码从 conv_base.trainable = False 更改为 conv_base.trainable = True。但我觉得结果还是不好

这是我的完整代码:https ://drive.google.com/file/d/1OeiSA23xmF5ceq19aqc1l20mlT3Uxocs/view?usp=sharing

这是我的结果

模型精度

模型损失

4

1 回答 1

0

在我看来,训练 Efficientnet 的 5852 个样本是远远不够的。您也没有足够的数据进行验证。我在超过一百万个样本上训练 Efficientnet,但它仍然倾向于过度拟合。我给你的建议是尝试一个更简单的 CNN 架构(你可以从简单的 LeNet 开始并尝试添加层)。如果您更喜欢迁移学习方法,请尝试使用 BiT 模型 ( https://ai.googleblog.com/2020/05/open-sourcing-bit-exploring-large-scale.html ),它会给您带来更好的结果。

于 2021-11-03T07:13:48.393 回答