0

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

模型精度 模型损失

这是我的代码

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

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

4

1 回答 1

0

您在生成器中进行了重新缩放,这可能是问题的根源。

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

官方文档说:

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

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

于 2021-11-07T15:57:25.893 回答