《CPN源碼解析》
0 博客目錄
Pytorch模型訓練(0) - CPN源碼解析
Pytorch模型訓練(1) - 模型定義
Pytorch模型訓練(2) - 模型初始化
Pytorch模型訓練(3) - 模型保存與加載
Pytorch模型訓練(4) - Loss Function
Pytorch模型訓練(5) - Optimizer
Pytorch模型訓練(6) - 數據加載
1 前言
本人在博客2D多人關鍵點–《Cascaded Pyramid Network for Multi-Person Pose Estimation》中簡述了CPN的原理,這裏則來解析下其源碼;論文作者提供的源碼是tensorflow版本的,之前有人分析過了;正好還有個pytorch版本的CPN
本人想通過這份源碼的學習來總結學習Pytorch模型訓練的一些相關知識;pytorch-cpn這份源碼結構清晰,知識點豐富,非常適合拿來當學習案例
2 源碼結構
-
256.192.model與384.288.model:只是模型不同,其他類似;下面是train和test腳本
(下載鏈接: https://pan.baidu.com/s/1IAIoT69m1xZAIo8Rax4ElQ 提取碼:2zzq 複製這段內容後打開百度網盤手機App,操作更方便哦)
-
cocoapi:這是COCO數據集提供的操作數據的一些接口函數包
-
data:放COCO數據的文件夾
-
dataloader:數據加載包
-
networks:網絡結構包
-
utils:其他功能函數包
-
label_transform.py:COCO的人體關鍵點label文件轉換腳本
根據自己學習經驗,將代碼分解成下面4個模塊:
1 CPN模型
2 Loss函數和優化器
3 數據加載
4 模型監控
- 主要是訓練過程中,監控loss變化,或valid預測效果等
- 訓練可視化
PyTorch 中使用 TensorBoardX 對神經網絡進行統計可視化,如Loss 曲線、Accuracy 曲線、卷積核可視化、權值直方圖及多分位數折線圖、特徵圖可視化、梯度直方圖及多分位數折線圖及混淆矩陣圖等
TensorBoardX是藉助TensorFlow的tensorboard,模型訓練也不是非要可視化,所以這部分暫時先不更新,以後有時間再總結