更新时间:2021-03-18 GMT+08:00
分享

新增自定义模型组件

新增自定义模型组件有如下入口:

  • 在Projects Explorer窗口,打开*.mind文件的编排窗口,单击右侧Tool > Model > My Models新增自定义模型组件。
  • 在Projects Explorer窗口,选中Mind类型工程,选择Tools > Convert Model...菜单。
  • 在Projects Explorer窗口,选中Mind类型工程,单击右键,选择Convert Model...菜单。

下面分别介绍自定义模型组件的两种生成方式。

通过新增方式增加自定义模型组件

  1. 单击My Models右侧的,添加自定义模型组件,如图1所示。

    图1 添加自定义模型

  2. 弹出Convert Model窗口,如图2所示。

    图2 Convert Model窗口

    “Model type”可选择Caffe,Tensorflow或Offline model:

    • Caffe模型:必须配置模型文件 (Model File)和权重文件(Weight File)。
    • Tensorflow模型:必须配置模型文件(Model File)。
    • Offline model:必须选择模型路径(Model Path )。

  3. 单击Model File右侧的按钮,选择一个模型文件。左边的按钮是从客户端选择文件,右边的按钮是从Mind Studio服务器端安装用户的根目录选择文件(其他选择文件的地方都是相同的)。

    若要从Mind Studio服务器上选择模型文件,则要求Mind Studio安装用户对模型文件所在目录具有写权限。

    图3所示。
    图3 选择模型文件
    • “Model Name”自动填充模型文件的名称,用户可以在选择模型文件后自行修改为想要的名称。
    • “Input Shape”
      • Caffe模型:工具会解析模型文件获取模型的默认“Input Shape”,格式为 input_name:n,c,h,w。
      • Offline model:不显示该参数。
      • Tensorflow模型:Tensorflow或者是带有自定义层的模型暂不支持解析,通过单击Input Shape右边的配置该参数,可以配置多个,配置两个的示例如图4所示。
        图4 Input Shape

        用户上传的原始网络模型可以通过https://lutzroeder.github.io/netron/(使用chrome打开)进行解析,解析结果如图5所示,其中n表示一次处理的图片数量,解析出来是“?”,需要用户根据实际情况填写。

        图5 解析结果

  4. 选择了模型文件后,Model File右侧会多出按钮,单击该按钮,展示该模型的原始网络结构图,并且可以设置需要Report(转换后,选中层的输出会直接作为离线模型的输出)的层。如果某层的Report设置为Yes,该层变成绿色。如图6所示。

    图6 模型网络结构

    目前只有选择Caffe模型文件后,Model File右侧会多出按钮,选择Tensorflow模型不会出现该按钮。

  5. 打开“Quantization”开关,可以进行量化设置。如图7所示。

    “Input Type”可以选择“Image或者“Binary

    • 如果选择Image,Images File选择图片文件夹。
    • 如果选择Binary,Images File选择bin文件。
      图7 量化配置

    进行量化时,建议选择多张图片进行量化,如果数量太少,可能会影响精度;建议最多不超过50张,数量太多,有可能因为量化时间太长导致进程超时(限定3小时)。

  6. 单击“Advanced”,可以设置量化的“Image Format”“均值”“标准差”,设置完成后单击“ok”使设置生效,如图8所示。

    图8 量化高级配置

    如果量化开关开启,模型转换完毕后,在相应工程下的convertModel.log文件中可以查看量化参数的配置信息。量化配置的详细说明请参见《模型转换指导》

  7. 单击“Optional Options”,可进行更多可选配置,如图9图10所示。

    图9 可选配置(Static)
    图10 可选配置(Dynamic)

    配置项说明如表1所示。

    表1 Optional Options参数说明

    参数名称

    参数描述

    Operator Plugin Path

    算子插件路径。

    如果有针对所导入模型的自定义开发算子,此处需要导入。

    Input Image Preprocess

    AIPP图片预处理相关配置,默认开启,如果不需要设置可以将该开关关闭;如果开启该参数,则模型转换完毕后,在相应工程目录下的convertModel.log文件中可以查看相关参数配置信息。AIPP配置的详细说明请参见《模型转换指导》

    Image Preprocess mode

    Aipp图片预处理模式,从下拉框选择。默认值为Static。

    • Static:静态Aipp。
    • Dynamic:动态Aipp。
      须知:
      • 当“Image Preprocess mode”取值Static时,系统显示参数包括Input Image Format、Input Image Size[W|H]、Image Format Conversion、Model Image Format、Crop Start Loc[W|H]、Mean Less和Multiplying Factor。
      • 当“Image Preprocess mode”取值Dynamic时,系统只显示Max Image Size(Byte)。
      • 当“Image Preprocess mode”取值Dynamic时。如果在模型转换后需要修改图片的输入/输出格式,请修改推理引擎节点的属性参数Dynamic Aipp(包括Input Image Format、Image Format Conversion、Model Image Format)。如果需要修改图片的输入/输出之外的其他信息,请参见《Matrix API参考》

    Input Image Format

    输入图片格式,默认为YUV420SP_U8。

    选项:YUV420SP_U8、XRGB8888_U8、RGB888_U8、YUV400_U8。

    Input Image Size[W|H]

    输入图片大小,默认值由模型文件Input层的宽和高分别128和16对齐得到。

    Image Format Conversion

    色域转换开关,默认开启。

    当输入图片格式与模型处理文件格式不一致时需要开启。

    Model Image Format

    模型处理图片格式,默认为BGR888_U8。

    选项:YUV444SP_U8,YVU444SP_U8,RGB888_U8,BGR888_U8,GRAY

    开启色域转换开关后选择。

    Crop Start Loc[W|H]

    抠图开始位置,默认关闭,开启开关后可以设置起始位置。

    Mean Less

    减均值,默认开启。

    三个通道的值默认为104、117、123。

    Multiplying Factor

    乘系数(均方差或(max-min)的倒数),默认关闭。

    Max Image Size(Byte)

    处理图片时一次申请的内存空间大小,取值范围为(0, 4294967295]。

    如果用户需要修改该参数,则取值等于N * H * W * 4。(N,H,W来自“Input Shape”参数。W和H默认值由模型文件Input层的宽和高分别128和16对齐得到。4表示系数,系统校验时该系数根据输入图片格式有不同的取值,分别是YUV400_U8:1、YUV420SP_U8:1.5、RGB888_U8:3、XRGB8888_U8:4,为了保证空间充足,该参数使用最大值4)。

    Encryption

    是否加密。开关打开表示加密,否则为不加密。

    具体配置请参见加密自定义模型

    转换模型时开启Input Image Preprocess,Input Image Format选择XRGB8888_U8或者RGB888_U8,使用这样配置转换出的模型,在执行推理业务时,数据集应当导入格式为NHWC的图片。

  8. 根据用户需求完成配置后,单击“ok”可以进行模型新建。该操作设置了3小时运行时间限制,如果超过3小时还不能完成模型转换,则会结束转换进程。

    1. 如果转换成功,会展示转换成功页面,包括模型路径(路径默认展示在设备运行的模型的路径)和模型文件大小,如图11所示。
      图11 新建模型成功界面
    2. 如果转换失败,会弹出Error Report界面。

      出现模型转换失败页面时,请确保打开Mind Studio的网页没有缩放(可以放大网页),如果网页存在缩放,则模型转换失败页面可能会有部分菜单无法展示。

      如果失败类型仅是重命名算子,需要用户选择该类型对应的算子,如图12所示。

      图12 转化失败Report

      从下拉框选择一个算子后,单击“Retry”进行重试,如图13所示。

      图13 重新选择算子

      如果失败类型包含不支持的算子,如图14所示。

      图14 转化失败-包含不支持算子

      单击“Customize”对该类型的算子创建工程,进行自定义算子插件开发,详细请参考《Ascend 310 TE自定义算子开发指导 (Mind Studio方式)》

      自定义算子插件开发完成后,重新进行离线模型导入,导入时需要选择开发好的自定义算子插件,如图15所示。

      图15 导入离线模型--选择自定义开发算子插件

      单击“ok”进行转换。

  9. 模型转换成功后,会在自定义模型组件中展示,可直接拖拽用于后续编排,如图16所示。

    图16 自定义模型组件
    单击左侧的Model Zoo页签,可以在model-zoo的my-model中看到自定义的模型组件,如图17所示。
    图17 转化后的模型文件

通过模型转换方式生成

  1. 在Projects Explorer页签中选中需要转化模型的工程名称。
  2. 右击选择Convert Model...或者界面选择Tools > Convert Model...

    弹出模型转化配置界面,如图18所示。

    图18 模型转化配置界面

  3. 模型转化配置界面参数与新建模型参数配置相同,具体请参考通过新增方式增加自定义模型组件
  4. 配置完成后,单击“ok”,进行模型转化。
  5. 转换成功后展示转换成功页面,包括模型路径(路径默认展示在设备运行的模型的路径)和文件大小,如图19所示。

    图19 模型转换成功界面

    如果失败并且弹出Error Report界面,请参见8.b

  6. 模型转换成功后可以在model-zoo > my-model中看到自定义的模型组件,如图20所示。

    图20 转换后的模型文件

    如果没有看到该模型,请单击“Model Zoo Explorer”区域左侧的刷新按钮尝试。基于性能原因考虑,暂不支持通过展开折叠文件夹的方式刷新目录,如果要刷新目录,只能通过单击实现。

    同时可以在tool > My Models中看到新增的模型,如图21所示。

    图21 转换成功后My Models下新增的模型

分享:

    相关文档

    相关产品

close