云服务器内容精选

  • 前提条件 已在ModelArts在线训练算法模型,训练模型可参见《ModelArts文档》。如果要使用ModelArts的预置算法,当前华为HiLens平台仅支持转换如下预置算法: yolov3_resnet18(检测物体类别和位置) ResNet_v1_50(图像分类) 暂不支持导入ModelArts中“自动学习”训练的模型。 华为HiLens 只能导入ModelArts中训练的模型文件,不能导入ModelArts的模型。
  • 导入(转换)模型 在HiLens Studio界面左侧,单击。 页面左侧将显示您在ModelArts训练好的模型列表。 图1 模型列表 选择待导入、转换的模型,单击“Operation”列的“Apply”。 如果是“om”格式的模型,待模型导入成功后,HiLens Studio右下角会提示“Model imported successfully.”,文件夹“model”下会显示新导入的模型文件。 如果是非“om”格式的模型,会弹出“Convert Model”对话框。 按表1填写模型转换的信息,单击“OK”。 表1 Convert Model参数说明 参数 说明 Model Path 待转换的模型文件在技能项目文件中的位置。一般将模型导入至文件夹“save_model”。 Configuration 待转换模型的配置文件在技能项目文件中的位置。例如“save_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”时,可填写高级选项,包括张量形状、转换输出节点等参数选项,详情请见表2。 表2 Advanced Options 参数名称 参数说明 Input Tensor Shape 输入张量形状。若在上文“模型来源”中,选择需要转换格式的模型(非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的离线模型。 如果存在多个输入,请以分号(;)隔开。 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”,推理性能更好。
  • 本地导入模型至HiLens Studio 在HiLens Studio界面单击左上角,左侧将展示开发项目的文件目录。 在开发项目的文件目录区选择文件夹或空白区域,右键单击选择“Upload Files...”,在本地选择已经开发好的模型文件并导入至HiLens Studio。 caffe模型:caffe模型文件“.caffemodel”和“.prototxt”,根据业务选择上传配置文件“.cfg”。 tensorflow模型:“.pb”模型文件,根据业务选择上传配置文件“.cfg”。
  • 界面转换模型 导入模型至HiLens Studio后,在HiLens Studio界面打开一个技能项目。 单击HiLens Studio界面左侧的。 左侧将显示开发项目的文件目录,详细说明请见项目文件说明。 图3 文件目录 右键单击文件夹“model”,单击“Model Convertion”。 弹出“Model Convertion”对话框。 按表2填写模型转换的信息,单击“OK”。 图4 Model Convertion 表2 Convert Model参数说明 参数 说明 Model Path 待转换的模型文件在技能项目文件中的位置。一般将模型导入至文件夹“model”。 Configuration 待转换模型的配置文件在技能项目文件中的位置。例如“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”时,可填写高级选项,包括张量形状、转换输出节点等参数选项,详情请见表3。 表3 Advanced Options 参数名称 参数说明 Input Tensor Shape 输入张量形状。若在上文“模型来源”中,选择需要转换格式的模型(非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的离线模型。 如果存在多个输入,请以分号(;)隔开。 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”,推理性能更好。
  • 模型要求 导入的模型可为“.om”格式、“.pb”格式或“.caffemodel”格式,其中“.om”格式的模型才可以在HiLens Kit上运行,“.pb”格式或“.caffemodel”格式的模型在导入HiLens Studio之后,需要将模型转换至“.om”格式。 并非所有模型都能转换成功,进行导入(转换)模型操作前,请确认是否为“.om”模型支持的TensorFlow和Caffe算子边界,详情请见附录Caffe算子边界和Tensorflow算子边界。
  • 导入/转换模型操作 针对本地开发的模型,首先需要导入模型至HiLens Studio。针对非“om”格式的模型,还需要在HiLens Studio进行模型转换。 导入和转换模型的操作流程如图1所示,操作指引如表1所示。 图1 操作流程 表1 导入/转换模型操作 操作 操作方式 操作指引 步骤一:导入模型至HiLens Studio 方式一:从本地导入 本地导入模型至HiLens Studio 方式二:从OBS导入 OBS导入模型至HiLens Studio 步骤二:在HiLens Studio转换模型 方式一:使用命令行转换模型 命令行转换模型 方式二:通过HiLens Studio界面转换模型 界面转换模型