改进 EfficientNet 的结果

Posted

技术标签:

【中文标题】改进 EfficientNet 的结果【英文标题】:Improve the result of EfficientNet 【发布时间】:2021-12-09 14:26:59 【问题描述】:

晕,我还在 python 中苦苦挣扎。 现在我将使用 EfficientNet 模型来检测棕榈油的成熟度。 我使用的是 5852 张训练图片,分为 4 类(每类 1463 张)和 132 张测试图片(每类 33 张)。 用 200 个 epoch 测试后,结果还差得很远。 我有什么解决方案可以改善结果吗? 这是我的模型准确度和模型损失的结果。

这是我的代码

https://colab.research.google.com/drive/18AtIP7aOycHPDR84PuQ7iS8aYUdclZIe?usp=sharing

您的帮助对我来说意义重大。

【问题讨论】:

【参考方案1】:

您的生成器已重新缩放,这可能是问题的根源。

Efficientnets 的 Tensorflow 实现已经包含重新缩放层,因此您不能在 ImageDataGenerator 中重新缩放图像。您可以通过 .summary() 方法进行检查。

官方文档说:

注意:每个 Keras 应用程序都需要一种特定类型的输入预处理。对于 EfficientNet,输入预处理作为模型的一部分(作为 Rescaling 层)包含在内,因此 tf.keras.applications.efficientnet.preprocess_input 实际上是一个传递函数。 EfficientNet 模型期望它们的输入是像素的浮点张量,其值在 [0-255] 范围内

例如,Resnet 没有此层,您应该在将图像输入模型之前重新缩放图像。从 tf.keras.applications 为每个网络记住这些内容是很棘手的,所以我建议在使用新模型之前检查它们。

【讨论】:

以上是关于改进 EfficientNet 的结果的主要内容,如果未能解决你的问题,请参考以下文章

以下 Pyhthon CNN 架构库:EfficientNet & DenseNet 169 EfficientNet 导入问题

Pytorch CIFAR10图像分类 EfficientNet v1篇

Pytorch CIFAR10图像分类 EfficientNet v1篇

Pytorch CIFAR10图像分类 EfficientNet v1篇

图像识别—EfficientNet算法详细总结

改进YOLO系列 | 谷歌团队 | CondConv:用于高效推理的条件参数化卷积