《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,模型训练也不是非要可视化,所以这部分暂时先不更新,以后有时间再总结