https://github.com/huaweicloud/ModelArts-Lab/issues/219
本期實戰為圖像分類第三期。本期實戰,本期我們将會以 “VGG16模型” 為例,講解深度學習中模型調參和網絡優化的技巧。
- 【本期實戰内容】
- 圖像分類模型參數&網絡調優案例:https://github.com/huaweicloud/ModelArts-Lab/tree/master/notebook/DL_image_hyperparameter_tuning
- 【加入實戰微信群】
- 歡迎您自由加入本期實戰營的微信群,與 ModelArts 社群開發者一起交流
- 請添加 “華為雲 EI 微信小助手” 後,拉您入群(微信号:hwyeiqyzn)
- 【留下實戰記錄】
- 請您在本則 Issue 下方跟帖回報:華為雲賬号 + 完成實戰的截圖。
- 回報資訊格式,請參考如下 @sunbo57123 的樣例:
- 【本期積分規則】
- 第三期任務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中執行。步驟如下:
- ipynb檔案轉換成py檔案
轉換後得到一個同名的.py檔案,由于ipynb中編寫了很多jupyter環境中支援的特定指令,是以需要将一些特定指令進行處理,包括:
1. 以 ! 開頭的shell指令,使用Python subprocess庫代替
2. %matplotlib inline 聲明,無法在python環境中運作,直接删除
3. matplotlib的plot指令,在Terminal中無法直接使用,需要設定matplotlib.use('Agg')
由于處理過程較為複雜,我們直接提供了轉換好的02_data_augumentation.py
- 在Terminal中執行指令
首先,建立一個terminal:
在terminal中,先更新conda相關環境變量,執行指令
source /opt/conda/etc/profile.d/conda.sh
,然後執行
conda env list
指令,檢視conda環境,并切換到Tensorflow環境(根據Notebook規格,環境名稱可能有所不同):
執行py檔案:
nohup python 02_data_augumentation.py > data-aug.log &
,然後再敲一個Enter鍵。這樣,我們用nohup啟動了一個背景執行的程序,并将訓練的結果輸入到data-aug.log檔案中,在Terminal中,可以使用tail指令檢視日志檔案的内容,執行
tail -f data-aug.log
:
背景程序運作結束後,我們得到
data-aug.log
和
data-aug-plot.png
兩個檔案
積分所需檔案
- data-aug.log檔案
- matplot儲存的準确率曲線圖data-aug-plot.png
03任務中:
- 隻訓練分類層的日志和準确率曲線圖:
- 訓練所有參數的日志和準确率曲線圖:
- 【手動停止服務】
- 實驗完成後,請手動停止占用雲資源的服務,如:停止 “開發環境” 中所建立的 Notebook 以及 “部署上線”-“線上服務” 中所部署的線上服務,以避免因持續占用雲資源導緻資源包無謂消耗和欠費發生。需使用時,再啟動即可。