PyTorch深度學習工具箱

本文把文章標題取名成PyTorch深度學習工具箱的用意是在於:

日常在進行PyTorch模型訓練的時候,如果想知道模型的好壞,我們會用不少方式去評估。例如:train/val loss、train/val accuracy、Confusion Matrix、per class accuracy、F1 Score、t-SNE視覺化、GradCAM、觀看模型分類時,判斷錯誤的圖片,及其原始圖片路徑。

然而,目前大多數research公開的程式碼當中,幾乎找不太到有一個將前述評估方法整合在一起的程式。也因此,如果我們想要得到這些資訊,就必須到Google搜尋,找別人是怎麼完成這些功能的,往往花上不少時間。

在本文當中,我將彙整過去寫過關於這些主題的文章及程式碼,製作成一個目錄,供讀者及自己查詢使用:

1.使用TensorBoard視覺化train/val loss、train/val accuracy
https://pytorch.org/docs/stable/tensorboard.html

2. Confusion Matrix和per class accuracy
如何根據PyTorch的Model預測的output繪製出混淆矩陣(Confusion Matrix)並取得每個class的accuracy?

3. F1 Score(imblanced dataset可用macro和weighted)
sklearn官方F1 Score文檔

4. t-SNE視覺化
如何使用PyTorch的Feature Extractor輸出進行t-SNE視覺化?

5. GradCAM
如何在PyTorch上使用GradCAM進行神經網路分類依據視覺化?

6. 觀看模型預測時,判斷錯誤的圖片
這個功能將預測錯誤的圖片保存到TensorBoard的log當中,再從中使用Tensorflow==1.13.1版本還原出來到資料夾中,有兩篇文章需要參考。

如何顯示PyTorch中預測錯誤的圖片?
如何將保存到TensorBoard的圖片擷取出來?

7.檢查模型的參數量及模型檔案大小
PyTorch如何檢查模型的參數量及模型檔案大小?

8.列出分類錯誤之原始圖片路徑?
PyTorch如何列出分類錯誤之原始圖片路徑?

9.讓訓練結果具有再現性(Reproducibility)
如何確保PyTorch訓練的結果具有再現性?

10.將模型的多個Label輸出改成只有2種輸出
如何修改PyTorch的Prediction結果?

11.快速使用一些基於PyTorch所開發的套件
基於PyTorch的實用Library

12.降低訓練模型所需的時間
如何縮減PyTorch訓練時所需要的時間?

13.計算資料集的mean和std,用來作為Normalize的參數
PyTorch計算dataset的mean和std

14.計算Overkill和Leakage
PyTorch如何計算Overkill和Leakage並輸出成Excel檔案?

Machine Learning | Deep Learning | https://linktr.ee/yanwei