• 沒有找到結果。

导入/转换本地开发模型

9.5 管理模型

9.5.2 导入/转换本地开发模型

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

本章节介绍如何将本地开发的模型导入HiLens Studio,以及针对非“om”格式的模 型,如何在HiLens Studio进行模型转换。

模型要求

导入的模型可为“.om”格式、“.pb”格式或“.caffemodel”格式,其中“.om”格 式的模型才可以在HiLens Kit上运行,“.pb”格式或“.caffemodel”格式的模型在导 入HiLens Studio之后,需要将模型转换至“.om”格式。

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

前提条件

已在本地开发模型。本地自定义的训练模型,非“.om”格式的模型上传文件包含 caffe模型文件“.caffemodel”和“.prototxt”和配置文件“.cfg”,或tensorflow的

“.pb”模型文件和配置文件“.cfg”。

导入/转换模型操作

针对本地开发的模型,首先需要导入模型至HiLens Studio。针对非“om”格式的模 型,还需要在HiLens Studio进行模型转换。

导入和转换模型的操作流程如图9-12所示,操作指引如表9-7所示。

9-12 操作流程

9-7 导入/转换模型操作

操作 操作方式 操作指引

步骤一:导入模型至HiLens

Studio 方式一:从本地导入 本地导入模型至HiLens Studio

方式二:从OBS导入 OBS导入模型至HiLens Studio

操作 操作方式 操作指引 步骤二:在HiLens Studio转

换模型

方式一:使用命令行转 换模型

命令行转换模型 方式二:通过HiLens

Studio界面转换模型 界面转换模型

本地导入模型至 HiLens Studio

1. 在HiLens Studio界面单击左上角 ,左侧将展示开发项目的文件目录。

2. 在开发项目的文件目录区选择文件夹或空白区域,右键单击选择“Upload Files...”,在本地选择已经开发好的模型文件并导入至HiLens Studio。

caffe模型:caffe模型文件“.caffemodel”和“.prototxt”,根据业务选择 上传配置文件“.cfg”。

tensorflow模型:“.pb”模型文件,根据业务选择上传配置文件“.cfg”。

OBS 导入模型至 HiLens Studio

通过OBS导入模型至HiLens Studio,首先需要将自定义的模型上传至OBS服务,请见 上传模型至OBS。然后将OBS中的模型导入至HiLens Studio,可通过导入模型和拖拽 模型两种操作方式导入模型。 要收取一定费用,收费规则请参见对象存储服务 OBS。上传至OBS时,需确保 OBS桶与华为HiLens在同一区域,且OBS文件夹名称满足如下要求:

– 文件夹名称不能包含以下字符:\:*?"<>|。

– 文件夹名称不能以英文句号(.)或斜杠(/)开头或结尾。

– 文件夹绝对路径总长度不超过1023个字符。

– 文件夹名称不能包含两个以上相邻斜杠(/)。

● 导入模型至HiLens Studio

a. 在HiLens Studio界面单击 ,在文件目录单击文件夹“model”。

b. 选择模型导入的文件夹。

c. 单击“File>Import File(s) from OBS”。

弹出“Import File(s) from OBS”对话框。

9-13 Import File(s) from OBS

d. 在“Bucket”下拉框中选择模型存储的OBS桶,并选择模型所存储的文件路 径。

e. 单击“Import”。

导入模型文件至HiLens Studio。

说明

除了模型文件,在HiLens Studio界面单击“File>Import Files from OBS”,也可以根据自 身业务需要从OBS导入其他文件。

● 拖拽模型至HiLens Studio

a. 在HiLens Studio界面选择“View>OBS”,,或单击右侧 。 HiLens Studio界面右侧弹出OBS桶和文件夹列表。

b. 在界面“Bucket”下拉框中选择模型存储的OBS桶,然后在下方直接拖拽模 型文件至左侧技能项目的“model”文件夹位置,即可从OBS快速导入模型 文件。

说明

除了模型文件,也可以通过拖拽的方式,从OBS快速导入其他文件。

命令行转换模型

1. 导入模型至HiLens Studio后,在HiLens Studio界面上方选择“Terminal>New Terminal”。

新建一个终端界面。

2. 在终端界面执行以下命令转换模型。

tensorflow

omg --model=./yolo3_resnet18.pb --input_shape='images:1,288,512,3' --framework=3 --output=./yolo3_resnet18 --insert_op_conf=./aipp.cfgcaffe

omg --model=./mobilenet_yolov3_deploy.prototxt --weight=./

mobilenet_yolov3.caffemodel insert_op_conf=./aipp_yolo.cfg --framework=0 --output=./mobilent_yolo

详细的参数说明请参见转换Caffe/Tensorflow网络模型。

界面转换模型

1. 导入模型至HiLens Studio后,在HiLens Studio界面打开一个技能项目。

2. 单击HiLens Studio界面左侧的 。

左侧将显示开发项目的文件目录,详细说明请见项目文件说明。

9-14 文件目录

3. 右键单击文件夹“model”,单击“Model Convertion”。

弹出“Model Convertion”对话框。

4. 按表9-8填写模型转换的信息,单击“OK”。

9-15 Model Convertion

9-8 Convert Model 参数说明

参数 说明

Model Path 待转换的模型文件在技能项目文件中的位置。一般将模型导入 至文件夹“model”。

Configuratio

n 待转换模型的配置文件在技能项目文件中的位置。例如

“model/aipp_rgb.cfg”。

Output Path 模型转换后输出位置。

Type 模型转换的类型,包括“TF-FrozenGraph-To-Ascend-HiLens”、“Caffe to Ascend”。

● “TF-FrozenGraph-To-Ascend-HiLens”

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

● “Caffe to Ascend”

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

Advanced

Options 当模型转换类型为“TF-FrozenGraph-To-Ascend-HiLens”时,

可填写高级选项,包括张量形状、转换输出节点等参数选项,

详情请见表9-9。

9-9 Advanced Options

参数名称 参数说明

Input Tensor Shape 输入张量形状。若在上文“模型来源”中,选择需要转 换格式的模型(非om格式模型),并且转换类型是

“Tensorflow frozen graph 转 Ascend”或

“Tensorflow SavedModel 转 Ascend”时,需要填写 输入张量形状。

out_nodes 转换输出节点,即指定输出节点,例如

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

“node_name1:0”,表示节点名称为

“node_name1”的第0个输出。

input_format 输入数据格式,默认是“NHWC”,如果实际是

“NCHW”的话,需要通过此参数指定“NCHW”。

参数名称 参数说明

net_format 优选数据格式,即指定网络算子优先选用的数据格式,

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

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

● 0为默认值,表示生成普通“FP16 Davinci”模型,

推理性能更好。

● 1表示生成高精度“FP16 Davinci”模型,推理精度 更好。

output_type 网络输出数据类型,“FP32”为默认值,推荐分类网络、

检测网络使用;图像超分辨率网络,推荐使用

“UINT8”,推理性能更好。