代码拉取完成,页面将自动刷新
MindSpore Lite提供一个轻量级的离线模型混淆工具,可用于保护IOT或端侧设备上部署的模型文件的机密性。该工具通过对ms
模型的网络结构和算子类型进行混淆,使得混淆后模型的计算逻辑变得难以理解。通过混淆工具生成的模型仍然是ms
格式的,可直接通过Runtime推理框架执行推理(编译时需开启mindspore/mindspore/lite/CMakeLists.txt
中的ENABLE_MODEL_OBF
选项)。混淆会导致模型加载时延有轻微的增加,但对推理性能没有影响。
使用MindSpore Lite模型混淆工具,需要进行如下环境准备工作。
mindspore-lite-{version}-linux-x64
└── tools
└── obfuscator # 模型混淆工具
└── msobfuscator # 可执行程序
MindSpore Lite模型混淆工具提供了多种参数设置,用户可根据需要来选择使用。此外,用户可输入./msobfuscator --help
获取实时帮助。
下面提供详细的参数说明。
参数 | 是否必选 | 参数说明 | 取值范围 | 默认值 |
---|---|---|---|---|
--help |
否 | 打印全部帮助信息。 | - | - |
--modelFile=<MODELFILE> |
是 | 输入MindSpore Lite模型的路径。 | - | - |
--outputFile=<OUTPUTFILE> |
是 | 输出模型的路径,不需加后缀,可自动生成.ms 后缀。 |
- | - |
--obfDegree=<OBFDEGREE> |
否 | 设置模型的混淆程度,该值越大,模型中新增的节点和边越多 | (0,1] | 0.2 |
- 支持输入
.ms
模型。- 参数名和参数值之间用等号连接,中间不能有空格。
- 模型混淆会导致模型规模增大,obfDegree的值越大,模型规模增大的越多。
下面选取了几个常用示例,说明转换命令的使用方法。
设置日志打印级别为INFO。
set GLOG_v=1
日志级别:0代表DEBUG,1代表INFO,2代表WARNING,3代表ERROR。
以MindSpore Lite模型LeNet为例,执行混淆命令。
./msobfuscator --modelFile=lenet.ms --outputFile=lenet_obf --obfDegree=0.5
结果显示为:
OBFUSCATE MODEL lenet.ms SUCCESS!
这表示已经成功将MindSpore Lite模型混淆,获得新文件lenet_obf.ms
。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。