新增自定义模型组件
新增自定义模型组件有如下入口:
- 在Projects Explorer窗口,打开*.mind文件的编排窗口,单击右侧 新增自定义模型组件。
- 在Projects Explorer窗口,选中Mind类型工程,选择 菜单。
- 在Projects Explorer窗口,选中Mind类型工程,单击右键,选择 菜单。
下面分别介绍自定义模型组件的两种生成方式。
通过新增方式增加自定义模型组件
- 单击My Models右侧的
,添加自定义模型组件,如图1所示。
- 弹出图2所示。 窗口,如
“Model type”可选择Caffe,Tensorflow或Offline model:
- Caffe模型:必须配置模型文件 (Model File)和权重文件(Weight File)。
- Tensorflow模型:必须配置模型文件(Model File)。
- Offline model:必须选择模型路径(Model Path )。
- 单击Model File右侧的
按钮,选择一个模型文件。左边的按钮是从客户端选择文件,右边的按钮是从Mind Studio服务器端安装用户的根目录选择文件(其他选择文件的地方都是相同的)。
若要从Mind Studio服务器上选择模型文件,则要求Mind Studio安装用户对模型文件所在目录具有写权限。
如图3所示。- “Model Name”自动填充模型文件的名称,用户可以在选择模型文件后自行修改为想要的名称。
- “Input Shape”
- Caffe模型:工具会解析模型文件获取模型的默认“Input Shape”,格式为 input_name:n,c,h,w。
- Offline model:不显示该参数。
- Tensorflow模型:Tensorflow或者是带有自定义层的模型暂不支持解析,通过单击Input Shape右边的
配置该参数,可以配置多个,配置两个的示例如图4所示。
用户上传的原始网络模型可以通过https://lutzroeder.github.io/netron/(使用chrome打开)进行解析,解析结果如图5所示,其中n表示一次处理的图片数量,解析出来是“?”,需要用户根据实际情况填写。
- 选择了模型文件后,Model File右侧会多出
按钮,单击该按钮,展示该模型的原始网络结构图,并且可以设置需要Report(转换后,选中层的输出会直接作为离线模型的输出)的层。如果某层的Report设置为Yes,该层变成绿色。如图6所示。
目前只有选择Caffe模型文件后,Model File右侧会多出
按钮,选择Tensorflow模型不会出现该按钮。
- 打开“Quantization”开关,可以进行量化设置。如图7所示。
“Input Type”可以选择“Image”或者“Binary”,
- 如果选择Image,Images File选择图片文件夹。
- 如果选择Binary,Images File选择bin文件。
进行量化时,建议选择多张图片进行量化,如果数量太少,可能会影响精度;建议最多不超过50张,数量太多,有可能因为量化时间太长导致进程超时(限定3小时)。
- 单击“Advanced”,可以设置量化的“Image Format”、“均值”和“标准差”,设置完成后单击“ok”使设置生效,如图8所示。
如果量化开关开启,模型转换完毕后,在相应工程下的convertModel.log文件中可以查看量化参数的配置信息。量化配置的详细说明请参见《模型转换指导》。
- 单击“Optional Options”,可进行更多可选配置,如图9和图10所示。
配置项说明如表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的图片。
- 根据用户需求完成配置后,单击“ok”可以进行模型新建。该操作设置了3小时运行时间限制,如果超过3小时还不能完成模型转换,则会结束转换进程。
- 如果转换成功,会展示转换成功页面,包括模型路径(路径默认展示在设备运行的模型的路径)和模型文件大小,如图11所示。
- 如果转换失败,会弹出Error Report界面。
出现模型转换失败页面时,请确保打开Mind Studio的网页没有缩放(可以放大网页),如果网页存在缩放,则模型转换失败页面可能会有部分菜单无法展示。
如果失败类型仅是重命名算子,需要用户选择该类型对应的算子,如图12所示。
从下拉框选择一个算子后,单击“Retry”进行重试,如图13所示。
如果失败类型包含不支持的算子,如图14所示。
单击“Customize”对该类型的算子创建工程,进行自定义算子插件开发,详细请参考《Ascend 310 TE自定义算子开发指导 (Mind Studio方式)》。
自定义算子插件开发完成后,重新进行离线模型导入,导入时需要选择开发好的自定义算子插件,如图15所示。
单击“ok”进行转换。
- 模型转换成功后,会在自定义模型组件中展示,可直接拖拽用于后续编排,如图16所示。
单击左侧的Model Zoo页签,可以在model-zoo的my-model中看到自定义的模型组件,如图17所示。
通过模型转换方式生成
- 在Projects Explorer页签中选中需要转化模型的工程名称。
- 右击选择 或者界面选择 。
弹出模型转化配置界面,如图18所示。
- 模型转化配置界面参数与新建模型参数配置相同,具体请参考通过新增方式增加自定义模型组件。
- 配置完成后,单击“ok”,进行模型转化。
- 转换成功后展示转换成功页面,包括模型路径(路径默认展示在设备运行的模型的路径)和文件大小,如图19所示。
如果失败并且弹出Error Report界面,请参见8.b。
- 模型转换成功后可以在图20所示。 中看到自定义的模型组件,如
如果没有看到该模型,请单击“Model Zoo Explorer”区域左侧的刷新按钮
尝试。基于性能原因考虑,暂不支持通过展开折叠文件夹的方式刷新目录,如果要刷新目录,只能通过单击
实现。
同时可以在图21所示。
中看到新增的模型,如
