4.1.1.9. 其他模型工具(可选)

本节将对上述常规流程中不涉及的工具做统一介绍,这些工具是为某些特定需要提供,如果您有类似的需求,可以酌情选用。

4.1.1.9.1. 模型打包

模型打包提供了将多个转换后 bin 模型整合成一个文件的功能, 应用开发阶段,我们也为打包后模型提供了相关的接口,在您业务场景中模型比较多的时候可以使用。 打包工具 hb_pack 使用命令如下:

hb_pack -o dst_name.bin  to_pack_1.bin to_pack_2.bin

工具使用 -o 参数指定打包后文件名称。

需要打包的 bin 模型依次在命令尾部添加,使用空格分隔即可。

4.1.1.9.2. 模型信息查看

模型信息查看工具可以提供模型转换时使用的配置参数信息,其使用命令如下:

hb_model_info model_name.bin

hb_model_info 后加上模型名称即可,如果您使用的是打包后模型,需要带上一个在 hb_model_info 后先加上一个 -p 参数。 命令执行后会输出一些转换环境信息和转换配置中使用的配置参数信息,转换配置参数解读请参考 使用 hb_mapper makertbin 工具转换模型 部分介绍。

4.1.1.9.3. bin 模型节点修改

出于某些极大尺寸输入场景下的极致性能需求,部分输入的量化和转置操作可以融合在数据前处理中一并完成。 此时您可以选择使用 hb_model_modifier 工具移除这些节点(目前工具支持移除的节点包括: 指定的 runtime 模型中输入端的 Transpose、Quantize、Cast、Reshape 节点和输出端的 Transpose、Dequantize、DequantizeFilter、Cast、Reshape、Softmax 节点), 使用命令如下:

hb_model_modifier  bin_file  -r {node_name}

-r 参数指定需要删除的节点名称。

-o 指定删除节点后产生的新模型文件名称。

-a/--all 指定节点类型,支持一键删除所有对应类型的功能。若有多个类型节点需要删除, 需要指定多次。

需要删除的节点名称必须与 bin 模型中的名称完全一致,且每次调用工具只能删除一个节点。 在 使用 hb_perf 工具估计性能 部分介绍的 BIN Model Structure 中可以查看节点名称。

注意

删除节点的操作可能会改变模型输入输出信息,可以通过 hb_model_info 工具查看被删除节点信息,输出信息末尾会打印被删除节点的名称, 同时会生成 deleted_nodes_info.txt 文件, 文件中每一行记录了对应被删除节点的初始信息,可据此自行实现量化/反量化等处理逻辑。