iT邦幫忙

2025 iThome 鐵人賽

0

我的三個模型 ResNet34、VGG16、EfficientNetB0 都完成了 Stage 1 和 Stage 2 的訓練與微調,並在驗證集上取得了不錯的準確度。今天,我們將進入專案的最終評估環節:使用模型從未見過的測試集進行客觀檢驗,並透過混淆矩陣 (Confusion Matrix) 找出哪個模型表現最穩定、泛化能力最強,準備部署到 Hugging Face。

一、最終測試與性能總結
測試集 (Test Set) 是檢驗模型泛化能力的最後一道防線。它在整個訓練過程中都被隔離,確保我們得到的評估結果是客觀且公正的。

  1. 測試集評估實作
    我使用 Fast.ai 的 validate 函數對訓練好的最佳權重模型進行最終的測試。

# 載入最終訓練好的 ResNet34 權重 (Stage 2)
learn_resnet.load('resnet34_stage-2') 

# 使用測試集 (Test Set) 進行最終驗證
test_dl = dls.test_dl(get_image_files(TEST_PATH))
results = learn_resnet.validate(dl=test_dl)

# results[0] 為測試損失 (test_loss),results[1] 為測試準確度 (test_accuracy)
print(f"ResNet34 測試集損失: {results[0]:.4f}")
print(f"ResNet34 測試集準確度: {results[1]:.4f}")
  1. 多模型測試性能總結
    經過最終測試,三個模型的表現各有千秋,但 ResNet34 在穩定性上脫穎而出:
模型架構 專案實測表現 最終結論
ResNet34 準確度高且穩定,泛化能力強。 冠軍模型:在準確度與泛化能力上取得最佳平衡。
VGG16 在部分類別(如 Tsunami)分類落差大。 性能較不穩定,對細節敏感度不足。
EfficientNet-B0 部分類別 AUC 高,但整體分類準確率不如 ResNet34 穩定。 高效模型:適合輕量部署,但準確性略有犧牲。

上一篇
Day 21:多模型訓練 Stage 1 & Stage 2 微調
下一篇
Day 23:混淆矩陣診斷與模型訓練狀態分析
系列文
從入門村到最終 BOSS:30 天打通深度學習主線30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言