簡體   English   中英

如何提高CNN的預測准確率

[英]How to increase the prediction accuracy of CNN

我正在訓練 model 用於植物病害分類。 我得到了 90% 的驗證准確率在此處輸入圖像描述

model = Sequential()

model.add(Conv2D(filters=32, kernel_size=(3,3),input_shape=IMAGE_SHAPE, activation='relu',))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(filters=64, kernel_size=(3,3),input_shape=IMAGE_SHAPE, activation='relu',))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(filters=64, kernel_size=(3,3),input_shape=IMAGE_SHAPE, activation='relu',))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(filters=128, kernel_size=(3,3),input_shape=IMAGE_SHAPE, activation='relu',))
model.add(MaxPooling2D(pool_size=(2, 2)))


model.add(Flatten())


model.add(Dense(128))
model.add(Activation('relu'))


model.add(Dropout(0.5))
model.add(Dense(n_classes))
model.add(Activation("softmax"))

我使用單獨的看不見的數據集測試了 model。 下面的矩陣顯示了我使用看不見的數據集得到的結果。 當我從該數據集中選擇隨機圖像時,有時它們都沒有被正確預測,盡管矩陣顯示它已被正確分類。 請幫我解決這個問題。 我是新手。 要了解,請參閱疾病“目標點”。它被預測為“兩個蜘蛛蟎雙斑蜘蛛蟎”,盡管在矩陣中它不是這樣預測的混淆矩陣 預言

您的 model 清楚地表明它過度擬合。 過度擬合意味着 model 在訓練數據集上運行良好,但在驗證和測試數據集上運行不佳。 所以有很多技術可以去除model的過擬合。 我在這里提到其中的一些

  1. 增加 model 的復雜度。 您的 model 只有四個卷積層和一個密集層。 所以增加這兩層,尤其是卷積層。

  2. 超參數調優

    一個)。 您正在使用哪個優化器。 嘗試使用 Adam 優化器,它在大多數情況下都能正常工作。

    b)嘗試在某些時期使用調度器改變學習率后使用學習率調度器,這將減少損失並提高准確性。

    c) 重量衰減。 在優化器中使用權重衰減。 它改善了過擬合問題。

    d) 嘗試使用不同的批量大小

  1. 增加你的數據集。 如果您沒有更多數據集,您可以使用增強技術(在 Keras 中它是數據生成器)來增加數據集。

嘗試使用所有這些參數,不要松懈,希望你能做到。 它需要耐心和一次又一次的嘗試。

祝你好運

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM