其他算法模型示例

其他算法模型示例是指 05_miscellaneous/ 文件夹中的示例。

05_miscellaneous/ 是杂项示例,用于指导使用j6工具链提供的一些其他内容,比如:如何使用地平线模型转换工具使RGB数据训练的模型能在Runtime运行时接受YUV数据。

各示例用法、目录结构及内容请参照以下内容。

如何使用

如上所示,在各子文件夹下,每个使用示例都按照顺序封装成了shell脚本,按照shell脚本顺序执行,即可了解相应的工具的使用、API的功能以及用法等。

杂项示例

lenet_gray

目录结构

01_lenet_gray/ . └── mapper ├── 00_init.sh // 获取当前示例所需的模型和校准数据集 ├── 01_check.sh // 对模型进行预验证 ├── 02_get_mnist.sh // 获取校准数据 ├── 03_build.sh // 转换debug模型 ├── 04_inference.sh // 使用onnx runtime进行推理 ├── README.md ├── inference.py ├── lenet_gray_config.yaml └── process_mnist.py

示例内容

该示例为灰度图模型的模型转换、模拟器运行及上板运行示例。

resnet50_feature

目录结构

02_resnet50_feature . └── mapper ├── 00_init.sh // 获取当前示例所需的模型和校准数据集 ├── 01_check.sh // 对模型进行预验证 ├── 02_build.sh // 转换debug模型 ├── 03_inference.sh // 使用onnx runtime进行推理 ├── README.md ├── inference.py └── resnet50_feature_config.yaml

示例内容

该示例为resnet50_feature的模型转换, 模拟器运行及上板运行示例。

multi_input_example

目录结构

04_multi_input_example . └── mapper ├── 00_init.sh // 获取当前示例所需的模型和校准数据集 ├── 01_check.sh // 对模型进行预验证 ├── 02_preprocess.sh // 对数据进行预处理 ├── 03_build.sh // 转换debug模型 ├── 04_inference.sh // 单张图片进行推理 ├── data_preprocess.py ├── data_transformer.py ├── inference.py ├── README.md └── mobilenetv2_multi_config.yaml

示例内容

该示例为多输入模型的模型转换、模拟器运行及上板运行示例。

model_verifier

目录结构

07_model_verifier . ├── 00_init.sh // 获取当前示例所需的模型和校准数据集 ├── 01_preprocess.sh // 对数据进行预处理 ├── 02_build.sh // 转换debug模型 ├── 03_model_verify.sh // 执行模型验证 ├── calibration_data_feature ├── preprocess.py ├── README.md ├── mobilenet_config_bgr.yaml ├── mobilenet_config_yuv444.yaml └── resnet50_featuremap_config.yaml

示例内容

该示例为模型验证工具的验证示例。

model_info

目录结构

08_model_info . ├── 00_init.sh // 获取当前示例所需的模型和校准数据集 ├── 01_preprocess.sh // 对数据进行预处理 ├── 02_build.sh // 转换debug模型 ├── 03_model_info_check.sh // 执行模型信息检测并打印 ├── README.md ├── mobilenet_config.yaml └── preprocess.py

示例内容

该示例为模型信息输出工具的验证示例。

mobilenet_bgr

目录结构

09_mobilenet_bgr . └── mapper ├── 00_init.sh // 获取当前示例所需的模型和校准数据集 ├── 01_check.sh // 对数据模型做校验 ├── 02_preprocess.sh // 对数据进行预处理 ├── 03_build.sh // 模型转换 ├── 04_inference.sh // 单张图片进行推理 ├── README.md ├── mobilenet_config.yaml ├── postprocess.py └── preprocess.py

示例内容

该示例为 MobileNetv1 模型, input_type_rtbgr 的示例。

mobilenet_yuv444

目录结构

11_mobilenet_yuv444 . └── mapper ├── 00_init.sh // 获取当前示例所需的模型和校准数据集 ├── 01_check.sh // 对数据模型做校验 ├── 02_preprocess.sh // 对数据进行预处理 ├── 03_build.sh // 模型转换 ├── 04_inference.sh // 单张图片进行推理 ├── README.md ├── mobilenet_config.yaml ├── postprocess.py └── preprocess.py

示例内容

该示例为MobileNetv1模型, input_type_rtyuv444 的示例。

用户自定义OP示例

目录结构

06_custom_op . └── mapper ├── 00_init.sh ├── 03_build.sh ├── 04_inference.sh ├── README.md ├── create_onnx.py ├── custom_op_config.yaml ├── custom_op_inference.py └── horizon_ops.py

示例介绍

开发者使用地平线工具链将各开源框架训练得到的浮点模型转换为定点模型时,如果浮点模型中包含了工具链不支持的算子(以下简称为OP),则会转换失败。在此情况下,开发者可以使用工具链的自定义OP功能自行添加不支持的OP,完成模型转换。

mapper文件夹中包含了执行本示例所需要的脚本和配置文件。