核心思想就是通过Yaml文件将主体模块和可拔插的模块组成一个完整的pipline.
train.py流程解析:
初始化训练参数
1 parser=ArgsParser() #读取命令行传递参数,加载yaml文件参数
2 整合参数,检查参数配置是否正确
3 检查是否使用GPU加速
4 检查paddledet版本是否正确
5 进入run()函数
配置阶段:
系统变量配置、初始化、得到GPU数量
创建数据读取类
创建网络结构类
创建学习率类
创建优化器类
初始化模型权重、加载预训练模型、模型与优化器整合
是否多卡,并行训练
开始训练:
遍历数据,开始循环训练,根据时间戳计算时间
模型前向推理,反向传播
每一个iter结束后输出日志
打印log
eval.py流程解析
初始化训练参数:
parser=ArgsParser() #读取命令行传递参数,加载yaml文件参数
参数整合,检查参数配置是否正确
使用GPU加速
查看paddledet版本是否正确
进入run()函数
配置阶段:
创建网络结构类
初始化模型权重,加载预训练模型
创建数据读取类
开始评估
遍历数据,开始前向推理,收集结果
选择Metric评估标准
输出日志
infer.py流程解析
初始化训练参数:
parser=ArgParser() #读取命令行传递参数,加载yaml文件参数
参数整合,检查参数配置是否正确
GPU使用是否正确
查看paddledet版本是否正确
进入run()函数
配置阶段:
创建网络结构类
初始化模型权重,加载预训练模型
初始化模型权重,加载预训练模型
创建数据读取类
选择推理标准
开启推理:
遍历数据,开始前向推理,收集结果
保存推理结果
使用visualdl保存图片结果
export_model.py流程解析:
初始化训练参数
设置cpu环境执行,parser=ArgsParser() #读取命令行传递参数,加载yaml文件参数
BN参数转换为推理参数,将参数整合,检查参数配置
GPU加速
查看paddle版本
进入run()函数
配置阶段
创建网络结构类
初始化模型权重
转为静态图,保存模型