导入/转换本地开发模型-凯发k8国际娱乐官网入口
技能可以抽象地理解为算法模型 逻辑代码。算法模型负责关键的ai推理,逻辑代码负责处理模型推理的结果。因此在hilens studio开发技能时,需要将模型导入hilens studio。
本章节介绍如何将本地开发的模型导入hilens studio,以及针对非“om”格式的模型,如何在hilens studio进行模型转换。
模型要求
导入的模型可为“.om”格式、“.pb”格式或“.caffemodel”格式,其中“.om”格式的模型才可以在hilens kit上运行,“.pb”格式或“.caffemodel”格式的模型在导入hilens studio之后,需要将模型转换至“.om”格式。
并非所有模型都能转换成功,进行导入(转换)模型操作前,请确认是否为“.om”模型支持的tensorflow和caffe算子边界,详情请见附录和。
前提条件
已在本地开发模型。本地自定义的训练模型,非“.om”格式的模型上传文件包含caffe模型文件“.caffemodel”和“.prototxt”和配置文件“.cfg”,或tensorflow的“.pb”模型文件和配置文件“.cfg”。
导入/转换模型操作
针对本地开发的模型,首先需要导入模型至hilens studio。针对非“om”格式的模型,还需要在hilens studio进行模型转换。
操作 |
操作方式 |
操作指引 |
---|---|---|
步骤一:导入模型至hilens studio |
方式一:从本地导入 |
|
方式二:从obs导入 |
||
步骤二:在hilens studio转换模型 |
方式一:使用命令行转换模型 |
|
方式二:通过hilens studio界面转换模型 |
本地导入模型至hilens studio
- 在hilens studio界面单击左上角,左侧将展示开发项目的文件目录。
- 在开发项目的文件目录区选择文件夹或空白区域,右键单击选择“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服务,非“.om”格式的模型上传文件包含caffe模型文件“.caffemodel”和“.prototxt”和配置文件“.cfg”,或tensorflow的“.pb”模型文件和配置文件“.cfg”,上传操作可参见。模型文件上传至obs的目录需满足一定规范,详情请见。上传到obs需要收取一定费用,收费规则请参见。上传至obs时,需确保obs桶与华为hilens在同一区域,且obs文件夹名称满足如下要求:
- 文件夹名称不能包含以下字符:\:*?"<>|。
- 文件夹名称不能以英文句号(.)或斜杠(/)开头或结尾。
- 文件夹绝对路径总长度不超过1023个字符。
- 文件夹名称不能包含两个以上相邻斜杠(/)。
- 导入模型至hilens studio
- 在hilens studio界面单击,在文件目录单击文件夹“model”。
- 选择模型导入的文件夹。
- 单击“file>import file(s) from obs”。
弹出“import file(s) from obs”对话框。
图2 import file(s) from obs
- 在“bucket”下拉框中选择模型存储的obs桶,并选择模型所存储的文件路径。
- 单击“import”。
导入模型文件至hilens studio。
除了模型文件,在hilens studio界面单击“file>import files from obs”,也可以根据自身业务需要从obs导入其他文件。
- 拖拽模型至hilens studio
- 在hilens studio界面选择“view>obs”,,或单击右侧。
hilens studio界面右侧弹出obs桶和文件夹列表。
- 在界面“bucket”下拉框中选择模型存储的obs桶,然后在下方直接拖拽模型文件至左侧技能项目的“model”文件夹位置,即可从obs快速导入模型文件。
除了模型文件,也可以通过拖拽的方式,从obs快速导入其他文件。
- 在hilens studio界面选择“view>obs”,,或单击右侧。
命令行转换模型
- 导入模型至hilens studio后,在hilens studio界面上方选择“terminal>new terminal”。
新建一个终端界面。
- 在终端界面执行以下命令转换模型。
- tensorflow
omg --model=./yolo3_resnet18.pb --input_shape='images:1,288,512,3' --framework=3 --output=./yolo3_resnet18 --insert_op_conf=./aipp.cfg
- caffe
omg --model=./mobilenet_yolov3_deploy.prototxt --weight=./mobilenet_yolov3.caffemodel --insert_op_conf=./aipp_yolo.cfg --framework=0 --output=./mobilent_yolo
详细的参数说明请参见。
- tensorflow
界面转换模型
- 导入模型至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”,推理性能更好。
- “tf-frozengraph-to-ascend-hilens”
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨