更新时间:2024-07-01 GMT+08:00
分享

导入(转换)模型

技能可以抽象地理解为算法模型+逻辑代码。算法模型负责关键的AI推理,逻辑代码负责处理模型推理的结果。因此在开发技能前,需要将模型导入华为HiLens。

模型要求

导入的模型可为“.om”格式、“.pb”格式或“.caffemodel”格式,其中“.om”格式的模型才可以在HiLens Kit上运行,“.pb”格式或“.caffemodel”格式的模型在“导入(转换)”过程中,华为HiLens平台会自动将模型转换为“.om”格式。

并非所有模型都能转换成功,进行导入(转换)模型操作前,请确认是否为“.om”模型支持的TensorFlow和Caffe算子边界,详情请见附录Caffe算子边界Tensorflow算子边界

前提条件

在导入模型前,导入的模型可通过ModelArts在线训练,也可通过本地训练。

  • 导入ModelArts模型文件

    导入ModelArts模型文件前,需先在ModelArts训练自己的算法模型,训练模型可参见《ModelArts文档》。如果要使用ModelArts的预置算法,当前华为HiLens平台仅支持转换如下预置算法:

    • 暂不支持导入ModelArts中“自动学习”训练的模型。
    • 华为HiLens 只能导入ModelArts中训练的模型文件,不能导入ModelArts的模型。
  • 本地训练模型

    导入自定义模型前,需要将自定义的模型上传到OBS服务,非“.om”格式的模型上传文件包含caffe模型文件“.caffemodel”“.prototxt”和配置文件“.cfg”,或tensorflow的“.pb”模型文件和配置文件“.cfg”

    上传操作可参见OBS快速入门。模型文件上传至OBS的目录需满足一定规范,详情请见模型输入目录规范

    上传到OBS需要收取一定费用,收费规则请参见对象存储服务 OBS

    上传至OBS时,需确保OBS桶与华为HiLens在同一区域,且OBS文件夹名称满足如下要求:

    • 文件夹名称不能包含以下字符:\:*?"<>|。
    • 文件夹名称不能以英文句号(.)或斜杠(/)开头或结尾。
    • 文件夹绝对路径总长度不超过1023个字符。
    • 文件夹名称不能包含两个以上相邻斜杠(/)。

导入(转换)模型操作

  1. 登录华为HiLens管理控制台,在左侧导航栏中选择“技能开发>模型管理”,进入“模型管理”页面。
  2. “模型管理”页面,单击右上角的“导入(转换)模型”
  3. “导入模型”页面,然后参考表1填写参数,信息确认无误后单击“确定”完成导入。
    图1 导入模型
    表1 导入自定义模型

    参数名称

    参数说明

    名称

    导入模型的名称。模型名称仅支持输入小写字母、数字、中划线字符,输入以小写字母开头,以小写字母、数字结尾,长度2~24的字符。

    版本

    导入模型的版本号。

    格式为“数字.数字.数字”,如2.1.3,每位数字范围为0~999,超过1位时,不能以0开头。

    描述

    导入模型的描述。仅支持输入长度1~100的字符。不允许输入&!"'\<>=等特殊字符。

    模型来源

    选择导入模型的来源,包括“从OBS导入”“从ModelArts导入”

    • 从OBS导入

      单击“从OBS导入”,选择导入自定义模型存储在OBS服务的桶和文件夹,单击“确定”

    • 从ModelArts导入
      1. 单击“从ModelArts导入”,在右侧下拉框中选择模型框架,包括“TensorFlow”“Caffe”“OM(从转换任务中获取)”

        在您进行导入(转换)操作后,华为HiLens平台将TensorFlow、Caffe模型转换为“.om”格式,然后导入模型。OM模型是从前者转换任务中获取。

      2. 在下方的模型列表中勾选待导入的模型。

    转换类型

    若在上文“模型来源”中,选择需要转换格式的模型(非“.om”格式模型),需要选择模型转换的类型,包括“TF-FrozenGraph-To-Ascend-HiLens”“TF-SavedModel-To-Ascend-HiLens”“TF-FrozenGraph-To-Ascend”“TF-SavedModel-To-Ascend”“Caffe 转 Ascend”

    • TF-FrozenGraph-To-Ascend-HiLens

      该模板将TF frozen_graph模型转换成可在ascend芯片上运行的模型。HiLens Kit系统固件版本为2.2.200.011时,建议使用此模板进行转换。

    • TF-SavedModel-To-Ascend-HiLens

      该模板将TF saved_model模型转换成可在ascend芯片上运行的模型。HiLens Kit系统固件版本为2.2.200.011时,建议使用此模板进行转换。

    • TF-FrozenGraph-To-Ascend

      该模板将TF frozen_graph模型转换成可在ascend芯片上运行的模型。HiLens Kit系统固件版本低于2.2.200.011时,建议使用此模板进行转换。

    • TF-SavedModel-To-Ascend

      该模板将TF saved_model模型转换成可在ascend芯片上运行的模型。HiLens Kit系统固件版本低于2.2.200.011时,建议使用此模板进行转换。

    • Caffe转Ascend

      支持将Caffe模型转换成可在ascend芯片上运行的模型。

    • TF-FrozenGraph-To-Ascend-893

      该模板将TF frozen_graph模型转换成可在ascend芯片上运行的模型。HiLens Kit系统固件版本低于2.2.200.011时,建议使用此模板进行转换。

    转换输入目录

    若在上文“模型来源”中,选择需要转换格式的模型(非om格式模型),转换输入目录根据模型的来源自动初始化。目录下应该包含模型文件和转换所需的配置文件。模型文件的输入目录规范请见模型输入目录规范

    转换输出目录

    若在上文“模型来源”中,选择需要转换格式的模型(非om格式模型),单击选择模型转换完成后输出的OBS目录。请确保该目录下没有om模型。输出目录规范请见模型输出目录规范

    高级选项

    包括输入张量形状、转换输出节点等参数选项,详情请见表2

    表2 高级选项

    参数名称

    参数说明

    输入张量形状

    若在上文“模型来源”中,选择需要转换格式的模型(非om格式模型),并且转换类型是“Tensorflow frozen graph 转 Ascend”“Tensorflow SavedModel 转 Ascend”时,需要填写输入张量形状。

    张量形状即模型输入数据的shape,输入数据格式为NHWC,如“input_name:1,224,224,3”“input_name”必须是转换前的网络模型中的节点名称。当模型存在动态shape输入时必须提供。例如“input_name1:?,h,w,c”,该参数必填,其中“?”为batch数,表示1次处理的图片数量,需要根据实际情况填写,用于将动态shape的原始模型转换为固定shape的离线模型。

    如果存在多个输入,请以分号(;)隔开。

    转换输出节点

    指定输出节点,例如“node_name1:0;node_name1:1;node_name2:0”,其中“node_name”必须是模型转换前的网络模型中的节点名称,冒号后的数字表示第几个输出,例如“node_name1:0”,表示节点名称为“node_name1”的第0个输出。

    输入数据格式

    默认是“NHWC”,如果实际是“NCHW”的话,需要通过此参数指定“NCHW”

    优选数据格式

    指定网络算子优先选用的数据格式,“ND(N=4)”“5D”。仅在网络中算子的输入数据同时支持“ND”“5D”两种格式时,指定该参数才生效。“ND”表示模型中算子按“NCHW”转换成通用格式,“5D”表示模型中算子按华为自研的5维转换成华为格式。“5D”为默认值。

    生成高精度模型

    指定是否生成高精度“FP16 Davinci”模型。

    • 0为默认值,表示生成普通“FP16 Davinci”模型,推理性能更好。
    • 1表示生成高精度“FP16 Davinci”模型,推理精度更好。

    网络输出数据类型

    “FP32”为默认值,推荐分类网络、检测网络使用;图像超分辨率网络,推荐使用“UINT8”,推理性能更好。

    模型导入后,将进入“模型管理”页面,您导入的模型可从列表中查看。

查看模型详情

  1. 登录华为HiLens管理控制台,在左侧导航栏中选择“技能开发>模型管理”,进入“模型管理”页面。

    您可以在列表中查看“模型名称”“版本”“模型大小”“导入时间”“状态”“描述”“操作”。其中,模型状态包括“转换中”“转换失败”“转换成功”“导入失败”“导入成功”

  2. 单击操作列的“查看详情”,进入“模型详情”页面。

    您可以查看模型的“基本信息”“日志信息”,如图2所示。

    “基本信息”的参数说明请见表2

    针对需要转换的模型,您可以在“日志信息”区域右上方通过关键字搜索快速定位日志中关键信息的位置,您也可以参与论坛讨论进一步解决疑问。

    图2 模型详情

重新转换模型

当您导入的模型格式不是“.om”格式,且模型状态处于“转换失败”的状态时,您可以修改模型的相关参数,重新转换模型。

模型状态可在华为HiLens管理控制台的“模型管理”页面查看。

  1. 登录华为HiLens管理控制台,在左侧导航栏中选择“技能开发>模型管理”,进入“模型管理”页面。
  2. 单击操作列的“查看详情”,进入“模型详情”页面。

    您可以查看模型的“基本信息”“日志信息”

    针对重新转换的模型,您可以在“日志信息”区域右上方通过关键字搜索快速定位日志中关键信息的位置,您也可以参与论坛讨论进一步解决疑问。

  3. 单击“基本信息”中的“转换类型”“高级选项”“转换输入目录”“转换输出目录”“描述”进行修改编辑,编辑完成后单击保存信息。参数说明请见表2
  4. 修改完模型参数后,单击右上角“重新转换”,即可重新转换模型。

删除模型

您可以根据自身业务需要,删除已导入(转换)的模型。状态为“转换中”的模型不可执行删除操作。

  1. 登录华为HiLens管理控制台,在左侧导航栏中选择“技能开发>模型管理”,进入“模型管理”页面。
  2. 单击操作列的“删除”,完成删除模型操作。也可单击操作列的“查看详情”,在“模型详情”页面的右上角单击“删除模型”,完成删除模型操作。
    图3 删除模型

相关文档