0
点赞
收藏
分享

微信扫一扫

华为开源自研AI框架昇思MindSpore模型体验:ModelZoo中的CRNN

目录

如果你对MindSpore感兴趣,可以关注昇思MindSpore社区

在这里插入图片描述

在这里插入图片描述

一、环境准备

1.进入ModelArts官网

云平台帮助用户快速创建和部署模型,管理全周期AI工作流,选择下面的云平台以开始使用昇思MindSpore,可以在昇思教程中进入ModelArts官网

在这里插入图片描述

选择下方CodeLab立即体验

在这里插入图片描述

等待环境搭建完成

在这里插入图片描述

2.使用CodeLab体验Notebook实例

在这里插入图片描述
导入项目仓库,在CodeLab中Clone以下命令

https://gitee.com/mindspore/models.git

在这里插入图片描述
在这里插入图片描述

导入成功

在这里插入图片描述

在右侧切换规格为GPU架构

在这里插入图片描述

在这里插入图片描述

切换成功显示如下

在这里插入图片描述

进入昇思MindSpore官网,点击上方的安装

在这里插入图片描述

获取安装命令

在这里插入图片描述

回到Notebook中,选择Terminal,依次运行命令

在这里插入图片描述

pip install --upgrade pip
conda install mindspore-gpu=1.9.0 cudatoolkit=10.1 -c mindspore -c conda-forge
pip install mindvision

依次运行即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、脚本说明

脚本及样例代码

crnn
├── README.md                                   # CRNN描述
├── convert_ic03.py                             # 转换原始IC03数据集
├── convert_iiit5k.py                           # 转换原始IIIT5K数据集
├── convert_svt.py                              # 转换原始SVT数据集
├── requirements.txt                            # 数据集要求
├── scripts
│   ├── run_standalone_train_cpu.sh             # 在CPU中启动单机训练
│   ├── run_eval_cpu.sh                         # 在CPU中启动评估
│   ├── run_distribute_train.sh                 # 在Ascend或GPU中启动分布式训练(8卡)
│   ├── run_eval.sh                             # 在Ascend或GPU中启动评估
│   └── run_standalone_train.sh                 # 在Ascend或GPU中启动单机训练(单卡)
│   └── run_eval_onnx.sh                        # Eval ONNX模型
├── src
│   ├── model_utils
│       ├── config.py                           # 参数配置
│       ├── moxing_adapter.py                   # ModelArts设备配置
│       └── device_adapter.py                   # 设备配置
│       └── local_adapter.py                    # 本地设备配置
│   ├── crnn.py                                 # CRNN网络定义
│   ├── crnn_for_train.py                       # CRNN网络,带梯度、损失和梯度裁剪
│   ├── dataset.py                              # 训练和评估数据预处理
│   ├── eval_callback.py
│   ├── ic03_dataset.py                         # IC03数据预处理
│   ├── ic13_dataset.py                         # IC13数据预处理
│   ├── iiit5k_dataset.py                       # IIIT5K数据预处理
│   ├── loss.py                                 # CTC损失定义
│   ├── metric.py                               # CRNN网络的准确率指标
│   └── svt_dataset.py                          # SVT数据预处理
└── train.py                                    # 训练脚本
├── eval.py                                     # 评估脚本
├── eval_onnx.py                                # ONNX模型评估脚本
├── default_config.yaml                         # 配置文件

训练脚本参数

# Ascend或GPU分布式训练
用法:bash scripts/run_distribute_train.sh [DATASET_NAME] [DATASET_PATH] [PLATFORM] [RANK_TABLE_FILE](if Ascend)

# Ascend或GPU单机训练
用法:bash scripts/run_standalone_train.sh [DATASET_NAME] [DATASET_PATH] [PLATFORM]

# CPU单机训练
用法:bash scripts/run_standalone_train_cpu.sh [DATASET_NAME] [DATASET_PATH]

三、数据集

数据集准备

将下载的数据集ICDAR 2003 Robust Reading Competitions
,放入data文件夹中

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、训练过程

运行run_standalone_train.sh进行CRNN模型的非分布式训练,目前支持Ascend和GPU。

bash scripts/run_standalone_train.sh [DATASET_NAME] [DATASET_PATH] [PLATFORM](optional)
bash scripts/run_distribute_train.sh ic03 ./data GPU

在这里插入图片描述

可以看到在目录下生成了训练文件夹

在这里插入图片描述
在这里插入图片描述
在Ascend或GPU上运行run_distribute_train.sh进行CRNN模型的分布式训练

bash scripts/run_distribute_train.sh [DATASET_NAME] [DATASET_PATH] [PLATFORM] [RANK_TABLE_FILE](if Ascend)

在这里插入图片描述

五、评估过程

运行run_eval.sh进行评估

bash scripts/run_eval_cpu.sh [DATASET_NAME] [DATASET_PATH] [CHECKPOINT_PATH]

检查eval/log.txt,将得到以下输出:

result: {'CRNNAccuracy': (0.806)}

六、推理过程

导出MindIR

python export.py --ckpt_file [CKPT_PATH] --file_name [FILE_NAME] --file_format [FILE_FORMAT] --device_target [DEVICE_TARGET] --model_version [MODEL_VERSION](required for cpu)

必须设置ckpt_file参数。 FILE_FORMAT:取值范围[“AIR”, “MINDIR”]

在Ascend 310上推理

# Ascend 310推理
bash run_infer_310.sh [MINDIR_PATH] [DATA_PATH] [ANN_FILE_PATH] [DATASET] [DEVICE_ID]

推理结果保存在当前路径中,可以在acc.log文件中查看如下结果

correct num: 2042 , total num: 3000
result CRNNAccuracy is: 0.806666666666
举报

相关推荐

0 条评论