昇腾社区首页
中文
注册

简介

训练组件的API基于MindSpore源码进行产品化封装,提供SSD_MobileNetV1_FPN、Resnet50、Yolov4、Unet、Unet++、CTPN和CRNN七个模型的训练和评估脚本文件,覆盖物体检测、物体分类、文字检测、文字识别和语义分割共计五类应用场景。

训练代码可通过命令行参数配置,进行模型训练、模型转换、模型评估、精度结果保存及可视化文件生成。

另外还提供了半导体质检所需的训练脚本半导体质检场景Wafer,以及某些特定场景下可能会辅助使用到的数据集预处理脚本数据集处理工具包
图1 训练组件中的交互过程

训练代码一般以每个模型一个文件夹的方式存放,内部的“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文件进行精度评估,保存评估过程中生成的各种可视化表格及评估参数配置文件。