261 Star 983 Fork 335

MindSpore / docs

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
cropper_tool.md 4.76 KB
Copy Edit Web IDE Raw Blame History

使用裁剪工具降低库文件大小

Linux 环境准备 静态库裁剪 中级 高级

概述

MindSpore Lite提供对Runtime的libmindspore-lite.a静态库裁剪工具,能够筛选出ms模型中存在的算子,对静态库文件进行裁剪,有效降低库文件大小。

裁剪工具运行环境是x86_64,目前支持对CPU算子的裁剪,即编译方式为bash build.sh -I arm64 -e cpubash build.sh -I arm32 -e cpubash build.sh -I x86_64 -e cpu中的libmindspore-lite.a静态库。

环境准备

使用MindSpore Lite裁剪工具,需要进行如下环境准备工作。

  • 编译:裁剪工具代码在MindSpore源码的mindspore/lite/tools/cropper目录中,参考构建文档中的环境要求编译示例编译x86_64版本。

  • 运行:参考构建文档中的编译输出,获得cropper工具。

参数说明

使用裁剪工具进行静态库的裁剪,其命令格式如下所示。

./cropper [--packageFile=<PACKAGEFILE>] [--configFile=<CONFIGFILE>]
          [--modelFile=<MODELFILE>] [--modelFolderPath=<MODELFOLDERPATH>]
          [--outputFile=<MODELFILE>] [--help]

下面提供详细的参数说明。

参数 是否必选 参数说明 参数类型 默认值 取值范围
--packageFile=<PACKAGEFILE> 需要裁剪的libmindspore-lite.a文件路径。 String - -
--configFile=<CONFIGFILE> 裁剪工具配置文件的路径,裁剪CPU库需要设置cropper_mapping_cpu.cfg文件路径。 String - -
--modelFolderPath=<MODELFOLDERPATH> 模型文件夹路径,根据文件夹中存在的所有ms模型进行库裁剪。modelFilemodelFolderPath参数必须二选一。 String - -
--modelFile=<MODELFILE> 模型文件路径,根据指定的ms模型文件进行库裁剪,多个模型文件采用,分割。modelFilemodelFolderPath参数必须二选一。 String - -
--outputFile=<OUTPUTFILE> 裁剪完成的libmindspore-lite.a库的保存路径,默认覆盖源文件。 String - -
--help 打印全部帮助信息。 - - -

配置文件cropper_mapping_cpu.cfg存在于mindspore-lite-{version}-inference-linux-x64包中的cropper目录。

使用示例

裁剪工具通过解析ms模型得到算子列表,并根据配置文件configFile中的映射关系来裁剪libmindspore-lite.a静态库。模型文件传入方式包括文件夹、文件两种:

  • 通过文件夹的方式传入ms模型,将模型文件所在的文件夹路径传递给modelFolderPath参数,对arm64-cpu的libmindspore-lite.a静态库进行裁剪。
./cropper --packageFile=/mindspore-lite-{version}-inference-android-aarch64/lib/libmindspore-lite.a --configFile=./cropper_mapping_cpu.cfg --modelFolderPath=/model --outputFile=/mindspore-lite/lib/libmindspore-lite.a

本例将读取/model文件夹中包含的所有ms模型,对arm64-cpu的libmindspore-lite.a静态库进行裁剪,并将裁剪后的libmindspore-lite.a静态库保存到/mindspore-lite/lib/目录。

  • 通过文件的方式传入ms模型,将模型文件所在的路径传递给modelFile参数,对arm64-cpu的libmindspore-lite.a静态库进行裁剪。
./cropper --packageFile=/mindspore-lite-{version}-inference-android-aarch64/lib/libmindspore-lite.a --configFile=./cropper_mapping_cpu.cfg --modelFile=/model/lenet.ms,/model/retinaface.ms  --outputFile=/mindspore-lite/lib/libmindspore-lite.a

本例将根据modelFile传入的ms模型,对arm64-cpu的libmindspore-lite.a静态库进行裁剪,并将裁剪后的libmindspore-lite.a静态库保存到/mindspore-lite/lib/目录。

1
https://gitee.com/mindspore/docs.git
git@gitee.com:mindspore/docs.git
mindspore
docs
docs
r1.1

Search