[英]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.