簡體   English   中英

良好的訓練准確度和驗證准確度,但預測准確度較差

[英]Good training accuracy and validaiton accuracy but poor prediction accuracy

我的 CNN 有一個無意義的問題。 它在測試和驗證數據上具有很好的准確性,但是在預測方面它真的很糟糕,我無法弄清楚原因。

我有一個包含 traningData 和 TestData 的文件夾,每個文件夾有 5 個子文件夾名稱 classA、classB。 C類、D類、E類。 他們都有相關的圖片。

-----這個問題的解決方案---------我發現了錯誤,這就是為什么我清除了我的問題以使其更加清晰。 所以問題與 test_generator 中的一樣。 我沒有放 shuffle=False,所以當你做 test_datagen.flow_from_directory() 時你必須放 shuffle=False 這樣樣本就不會被打亂並且在你預測它時具有相同的順序

非常感謝大家

test_datagen = tf.keras.preprocessing.image.ImageDataGenerator(    
        rescale = 1./255,
        )

test_generator = test_datagen.flow_from_directory(
        directory="../newFlowers/TestData",
        target_size=(128, 128),
        color_mode="rgb",
        batch_size=8,
        class_mode="categorical",
        

    )

您的評估准確率為 89.9%。 我測試了我給你的代碼來打印結果,它們對於我使用的模型和數據是正確的。 請顯示您用於 model.predict 的代碼。 應該像下面這樣。 不要使用 predict-generator fit_generator 或evaluate_generator,因為它們將在 tensorflow 的未來版本中折舊。 只需使用擬合、預測或評估。

length=len(labels)
test_steps=  int(length/batch_size) +1
preds=model.predict(test_gen,  verbose=0, steps=test_steps)

查看您的 preds 打印出的第一個預測應該是 index=4,它是 E 類,因此是正確的,第二個預測索引具有最高概率是 1,它是 B 類,因此是正確的,其余的也是如此。 你確定你有標簽為 labels=test_gen.labels

暫無
暫無

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

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