天天看點

【華為雲 ModelArts-Lab AI實戰營】第三期:圖像分類 (III) 模型參數&網絡調優

https://github.com/huaweicloud/ModelArts-Lab/issues/219

本期實戰為圖像分類第三期。本期實戰,本期我們将會以 “VGG16模型” 為例,講解深度學習中模型調參和網絡優化的技巧。

  1. 【本期實戰内容】
    • 圖像分類模型參數&網絡調優案例:https://github.com/huaweicloud/ModelArts-Lab/tree/master/notebook/DL_image_hyperparameter_tuning
  2. 【加入實戰微信群】
    • 歡迎您自由加入本期實戰營的微信群,與 ModelArts 社群開發者一起交流
    • 請添加 “華為雲 EI 微信小助手” 後,拉您入群(微信号:hwyeiqyzn)
  3. 【留下實戰記錄】
    • 請您在本則 Issue 下方跟帖回報:華為雲賬号 + 完成實戰的截圖。
    • 回報資訊格式,請參考如下 @sunbo57123 的樣例:
  4. 【本期積分規則】
    • 第三期任務00-03,完成後按照老規矩獲得1個積分。調參沒有固定規則,經驗總結十分重要,除了實驗中進行講解的調優方法,希望各位AI大神能夠将将自己的調優經驗分享出來。網絡不設限制,比如 ResNet、ResNet+FPN(ROI IoU 等)、MobileNet 調優等,内容随心您定,調優的方法、思路、實踐過程等等,鼓勵幹貨滿滿的原創案例分享。擴充案例的送出形式統一為 ModelArts Notebook 為載體,能夠複現為核心,送出評分采用社群commiter 讨論的形式,内容相似度過高的文章,按照送出時間+能夠有效複現的形式取第1篇哦

00任務中:

  • 回報兩次各訓練 5個epoch(共10個epoch)後的運作結果+準确率變化折線圖
  • 回報帶有早停的運作結果
  • 拓展(非必選):可以嘗試自己定義學習率衰減規律。使用 LearningRateScheduler 方法,自己定義學習率衰減。并且将結果分享,大家共同讨論和改進。

01任務中:

  • 任意一個優化器的結果和準确率折線圖(5 epoch)
  • 拓展(非必選):多epoch(epoch>30)在不同優化器下的代碼和運作結果及準确率折線圖

02任務中:

資料增廣案例訓練時間較長,為了防止ipynb檔案運作時丢失kernel的連結,導緻無法檢視結果,建議開發者實踐時将ipynb檔案轉換為py檔案,并在terminal中執行。步驟如下:

  1. ipynb檔案轉換成py檔案
    【華為雲 ModelArts-Lab AI實戰營】第三期:圖像分類 (III) 模型參數&網絡調優

轉換後得到一個同名的.py檔案,由于ipynb中編寫了很多jupyter環境中支援的特定指令,是以需要将一些特定指令進行處理,包括:

1. 以 ! 開頭的shell指令,使用Python subprocess庫代替
2. %matplotlib inline 聲明,無法在python環境中運作,直接删除
3. matplotlib的plot指令,在Terminal中無法直接使用,需要設定matplotlib.use('Agg')
           

由于處理過程較為複雜,我們直接提供了轉換好的02_data_augumentation.py

  1. 在Terminal中執行指令

首先,建立一個terminal:

【華為雲 ModelArts-Lab AI實戰營】第三期:圖像分類 (III) 模型參數&網絡調優

在terminal中,先更新conda相關環境變量,執行指令

source /opt/conda/etc/profile.d/conda.sh

,然後執行

conda env list

指令,檢視conda環境,并切換到Tensorflow環境(根據Notebook規格,環境名稱可能有所不同):

【華為雲 ModelArts-Lab AI實戰營】第三期:圖像分類 (III) 模型參數&網絡調優

執行py檔案:

nohup python 02_data_augumentation.py > data-aug.log &

,然後再敲一個Enter鍵。這樣,我們用nohup啟動了一個背景執行的程序,并将訓練的結果輸入到data-aug.log檔案中,在Terminal中,可以使用tail指令檢視日志檔案的内容,執行

tail -f data-aug.log

【華為雲 ModelArts-Lab AI實戰營】第三期:圖像分類 (III) 模型參數&網絡調優

背景程序運作結束後,我們得到

data-aug.log

data-aug-plot.png

兩個檔案

積分所需檔案

  • data-aug.log檔案
  • matplot儲存的準确率曲線圖data-aug-plot.png

03任務中:

  • 隻訓練分類層的日志和準确率曲線圖:
  • 訓練所有參數的日志和準确率曲線圖:
  1. 【手動停止服務】
    • 實驗完成後,請手動停止占用雲資源的服務,如:停止 “開發環境” 中所建立的 Notebook 以及 “部署上線”-“線上服務” 中所部署的線上服務,以避免因持續占用雲資源導緻資源包無謂消耗和欠費發生。需使用時,再啟動即可。

繼續閱讀