简介
训练组件的API基于MindSpore源码进行产品化封装,提供SSD_MobileNetV1_FPN、Resnet50、Yolov4、Unet、Unet++、CTPN和CRNN七个模型的训练和评估脚本文件,覆盖物体检测、物体分类、文字检测、文字识别和语义分割共计五类应用场景。
训练代码可通过命令行参数配置,进行模型训练、模型转换、模型评估、精度结果保存及可视化文件生成。
训练代码一般以每个模型一个文件夹的方式存放,内部的“model_train.py”和“model_eval.py”是训练和评估的入口脚本文件,每一个目录下都放置了一个相同的“com_package”作为公共函数库。
其中“version.info”记录训练代码版本,“ssd_tiled_dataset_mindspore”文件夹基于ssd_mobilenet_fpn模型做的小目标检测功能的产品应用创建,“scripts”存放一些训练场景相关工具包的脚本,如数据增强脚本。训练模型代码文件夹目录结构参考如下。
.
训练模型代码文件夹
├── crnn_mindspore
├── ctpn_mindspore
├── resnet50_mindspore
└── scripts
├── com_package # 公共函数库
└── dataset_tools # 数据集处理工具库
├── coco_data_aug.py # COCO类型目标检测数据集离线数据增强
├── tag_paste_cls_dataset.py # 标签分类图片获取
└── tag_paste_data_augmentation.py # 标签分类数据增强工具
├── ssd_mobilenet_fpn_mindspore
├── ssd_tiled_dataset_mindspore
├── unet_mindspore
├── unet_nested_mindspore
├── version.info # 发布包版本信息
├── wafer_mindspore
└── yolov4_mindspore
├── com_package
├── inside_eval.py
├── inside_train.py
├── model_eval.py # 评估脚本的入口
├── model_train.py # 训练脚本的入口
├── model_wrapper # 模型训练评估过程依赖的库,如数据集、网络、评估方式、回调函数的定义
├── om_convert # 用于转换om离线模型,包括aipp配置文件
├── on_platform # 用于提供给平台的配置文件
└── pre_trained_ckpt # 存放预训练模型
模型训练、转换和评估功能简介。
- 模型训练:根据给定的训练数据集,划分为训练部分和测试部分,先用训练部分对模型的超参数进行训练,得到ckpt文件后再用测试部分进行精度评估,保存精度最好的ckpt文件及训练超参配置文件。
- 模型转换:首先采用MindSpore将最好精度的ckpt文件转成air文件,再采用ATC工具将air模型转成Atlas 200/300/500 推理产品以及Atlas 推理系列产品推理所用的om模型。模型转换当前是在模型训练完成后自动执行的,不可单独执行。
- 模型评估:根据给定的测试数据集,采用训练过程中精度最好的ckpt文件进行精度评估,保存评估过程中生成的各种可视化表格及评估参数配置文件。
父主题: 训练组件