目录

Model Integration

HMS Toolkit支持MindSpore Lite模型和HUAWEI HiAI模型的转换,其中MindSpore Lite模型支持TensorFlow Lite和Caffe两种框架,HUAWEI HiAI模型转换支持TensorFlow、Caffe、CoreML、PaddlePaddle、ONNX、MxNet和Keras七种框架。该功能集模型转换(容器化)环境检测、AI模型分析、AI模型转换、模型引用API自动生成和依赖添加等功能于一体,方便您快速集成自有AI模型。

MindSpore Lite模型转换

  1. 在菜单栏“HMS”中打开“Coding Assistant”,然后选择“AI > Model Integration”。
  2. 设置MindSpore Lite模型转换的基本信息。其中:
    • Inference engine:固定选择“MindSpore Lite”。
    • Choose AI Model File:选择待转换的MindSpore Lite模型文件,支持TensorFlow Lite和Caffe两种框架。
    • Choose Prototxt File:Caffe框架对应的Prototxt文件,选择Caffe文件时会自动选择。
    • Model output directory:转换后的新模型存储路径,默认会存储在项目工程的assets目录。
    • Choose the path of the generation model API file:转换后生成的API接口源文件存储路径,保持默认路径即可。
    • Quant Type:感知量化,TensorFlow Lite文件需要设置。您根据具体模型文件选择是否支持感知量化。
  3. 转换信息设置完成后,点击“Finish”,等待模型转换完成。转换完成后,请点击日志栏中的“MindSpore Lite model for inference”,查看具体的集成指导。

    如果您是第一次使用MindSpore Lite模型转换功能,会提示自动下载MindSpore转换工具。

HUAWEI HiAI模型转换

[h2]前提条件

[h2]TensorFlow模型转换

  1. 运行Docker desktop。并在“Settings > Proxies”中设置Docker代理(可选),代理设置格式为:username:password@proxyserver:port。

    如果您的网络无需代理服务器就能访问Internet,直接运行Docker desktop即可。

    如果您所在的网络被管控,不能直接访问Internet,那您需要设置Docker代理,通过代理服务器访问Internet。

  2. 在菜单栏“HMS”中打开“Coding Assistant”,然后选择“AI > Model Integration”。
  3. 设置TensorFlow模型转换的基本信息。其中:
    • Inference engine:请根据适配的Kirin芯片型号选择合适的DDK版本。

      DDK版本

      是否支持TensorFlow

      TensorFlow版本要求

      支持的芯片型号

      支持的算子说明

      HIAI DDK V150

      支持

      1.4及以下

      Kirin970

      请参见《华为HiAI_DDK_Vxxx_算子规格说明》,请从HUAWEI HiAI SDK包中获取。

      HIAI DDK V200

      支持

      1.12及以下

      Kirin980

      HIAI DDK V300

      支持

      1.12及以上

      Kirin810、Kirin820、Kirin985、Kirin990

      HIAI DDK V310

      支持

      1.12及以上

      HIAI DDK V320

      支持

      1.12及以上

    • Choose AI Model File:选择待转换的TensorFlow模型文件。
    • Model output directory:转换后的新模型存储路径,默认会存储在项目工程的assets目录。
    • Choose the path of the generation model API file:转换后生成的API接口源文件存储路径,保持默认路径即可。
    • Weight Data Type:模型权值数据类型,支持指定为FP32或FP16。该参数仅针对模型中权值数据类型为FP32时生效,根据设定将权值数据类型由FP32转为FP16存储或维持FP32不变。
  4. 点击“Next”,设置节点信息。
    • Input Node:神经网络输入节点。
    • Output Node:神经网络输出节点。
  5. 设置Image Preprocess信息。
    • Input Node Name:由Input Node输入的节点信息自动生成。
    • Enable Config:详细的参数说明请参见《华为HiAI_DDK_Vxxx_OMG工具使用说明》,请从HUAWEI HiAI SDK包中获取。
  6. 参数设置完成后,点击“Finish”,开始模型转换。
    1. HMS Toolkit首先检查本地模型转换环境,如发现任何问题,会在当前界面提示用户修复问题,需根据提示进行修复。

      环境检查最常见的问题是“Check The Docker Image”检查不通过,此时需要您手动下载Docker Image,下载完成后请按照界面提示操作。下载方法有两种:

      • 在Event Log中,点击蓝色链接“Install Images”进行下载。

      • 在当前界面点击“docker pull xxx”进行下载。

    2. 分析您提供的AI模型是否支持HUAWEI HiAI,如果Event Log出现标红日志信息,请根据错误的日志信息进行模型的修改,然后再重新转换。

    3. AI模型分析通过后,进入AI模型转换,HMS Toolkit会将您的AI模型转换为HUAWEI HiAI格式。转换完成后,会在工程目录中自动生成模型引用的API类并添加相关依赖。转换后添加的文件详情如下图所示:

  7. 转化完成后,可以调用生成的以模型名称命名的Java文件“[模型名称]Model.java”中,封装好的API进行模型运行。一般是先调用Load接口,再调用Predict接口。两类接口都提供了同步和异步接口,您可根据自己的代码逻辑,选择调用。

    Load同步和异步接口如下:

    • 同步API:ArrayList<ModelInfo> loadSync()
    • 异步API:ArrayList<ModelInfo> loadAsync()
    Predict同步和异步接口如下:
    • 同步API:predictSync(ArrayList<byte[]> buf)
    • 异步API:predictAsync(ArrayList<byte[]> buf)

[h2]Caffe模型转换

  1. 设置Caffe模型转换的相关参数。其中:
    • Inference engine:请根据适配的Kirin芯片型号选择合适的DDK版本。

      DDK版本

      是否支持Caffe

      Caffe版本要求

      支持的芯片型号

      支持的算子说明

      HIAI DDK V150

      支持

      1.0

      Kirin970

      请参见《华为HiAI_DDK_Vxxx_算子规格说明》,请从HUAWEI HiAI SDK包中获取。

      HIAI DDK V200

      支持

      1.0

      Kirin980

      HIAI DDK V300

      支持

      1.0

      Kirin810、Kirin820、Kirin985、Kirin990

      HIAIDDK V310

      支持

      1.0

      HIAIDDK V320

      支持

      1.0

    • Choose AI Model File:选择待转换的Caffe模型文件。
    • Choose Prototxt:Caffe模型对应的Prototxt文件,选择Caffe模型文件时会自动选择。
    • Model output directory:转换后的新模型存储路径,默认会存储在项目工程的assets目录。
    • Choose the path of the generation model API file:转换后生成的API接口源文件存储路径,保持默认路径即可。

    以上参数的设置方法请参见《华为HiAI_DDK_Vxxx_OMG工具使用说明》,请从HUAWEI HiAI SDK包中获取。

  2. 点击Next,设置节点信息。默认情况下,Config为关闭状态,您可以手动进行设置。
    • Input Node:神经网络输入节点。
    • Output Node:神经网络输出节点。
  3. 设置Image Preprocess信息。
    • Input Node Name:由Input Node输入的节点信息自动生成。
    • Enable Config:详细的参数说明请参见《华为HiAI_DDK_Vxxx_OMG工具使用说明》,请从HUAWEI HiAI SDK包中获取。
  4. 参数设置完成后,点击“Finish”,开始模型转换。
    1. HMS Toolkit首先检查本地模型转换环境,如发现任何问题,会在当前界面提示用户修复问题,需根据提示进行修复。

      环境检查最常见的问题是“Check The Docker Image”检查不通过,此时需要您手动下载Docker Image,下载完成后请按照界面提示操作。下载方法有两种:

      • 在Event Log中,点击蓝色链接“Install Images”进行下载。

      • 在当前界面点击“docker pull xxx”进行下载。

    2. 分析您提供的AI模型是否支持HUAWEI HiAI,如果Event Log出现标红日志信息,请根据错误的日志信息进行模型的修改,然后再重新转换。

    3. AI模型分析通过后,进入AI模型转换,HMS Toolkit会将您的AI模型转换为HUAWEI HiAI格式。转换完成后,会在工程目录中自动生成模型引用的API类并添加相关依赖。转换后添加的文件详情如下图所示:

  5. 转化完成后,可以调用生成的以模型名称命名的Java文件“[模型名称]Model.java”中,封装好的API进行模型运行。一般是先调用Load接口,再调用Predict接口。两类接口都提供了同步和异步接口,您可根据自己的代码逻辑,选择调用。

    Load同步和异步接口如下:

    • 同步API:ArrayList<ModelInfo> loadSync()
    • 异步API:ArrayList<ModelInfo> loadAsync()
    Predict同步和异步接口如下:
    • 同步API:predictSync(ArrayList<byte[]> buf)
    • 异步API:predictAsync(ArrayList<byte[]> buf)

[h2]其他模型转换

HUAWEI HiAI Foundation的本地模型转换功能除了支持典型的TensorFlow和Caffe模型转换外,还支持CoreML、PaddlePaddle、Mxnet、Onnx和Keras模型的本地转换。转换的方法和TensorFlow模型的转换方式完全一样,具体操作可参见TensorFlow模型转换。HUAWEI HiAI Foundation各个DDK版本对于各模型的支持情况如下表所示。

DDK版本

CoreML

PaddlePaddle

Mxnet

Onnx

Keras

TensorFlow Lite

HIAI DDK 150

支持

支持

支持

支持

支持

不支持

HIAI DDK 200

支持

支持

支持

支持

支持

不支持

HIAI DDK 300

支持

支持

不支持

不支持

不支持

不支持

HIAI DDK 310

支持

支持

不支持

不支持

不支持

不支持

HIAI DDK 320

支持

支持

不支持

不支持

不支持

不支持

当进行TensorFlow Lite模型转换且DDK版本为MindSpore时,只能在windows环境下转换。而且您需要根据界面提示下载MindSpore工具,下载完成后即可进行模型转换。