混合精度场景下,修改算子使用混合精度黑白灰名单。
开启混合精度方式:
混合精度场景下网络模型中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到float16;而使用--modify_mixlist参数后,用户可以在内置优化策略基础上进行调整,自行指定哪些算子允许降精度,哪些算子不允许降精度。
参数值:混合精度名单路径以及文件名。
参数值格式:路径和文件名:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、短横线(-)、句点(.)、中文汉字。
参数值约束:
无。
系统内置算子是否在黑名单、白名单或灰名单中,可从“OPP安装目录/opp/built-in/op_impl/ai_core/tbe/config/<soc_version>/aic-<soc_version>-ops-info.json”文件中查询每个算子的precision_reduce下的flag参数值,flag参数值为true表示白名单,为false表示黑名单,不配置flag参数表示灰名单,查询示例如下:
"Conv2D":{ "precision_reduce":{ "flag":"true" }
混合精度名单样例如下,ops_info.json为文件名示例,OpTypeA、OpTypeB、OpTypeC、OpTypeD为算子示例。
{ "black-list": { // 黑名单 "to-remove": [ // 黑名单算子转换为灰名单算子,配置该参数时,请确保被转换的算子已经存在于黑名单中 "OpTypeA" ], "to-add": [ // 白名单或灰名单算子转换为黑名单算子 "OpTypeB" ] }, "white-list": { // 白名单 "to-remove": [ // 白名单算子转换为灰名单算子,配置该参数时,请确保被转换的算子已经存在于白名单中 "OpTypeC" ], "to-add": [ // 黑名单或灰名单算子转换为白名单算子 "OpTypeD" ] } }
{ "black-list": { "to-add": [A] } }
则系统会将该算子从白名单中删除,并添加到黑名单中,最终该算子在黑名单中。
{ "black-list": { "to-add": [A] } "white-list": { "to-remove": [A] } }
则系统会将该算子从白名单中删除,并添加到黑名单中,最终该算子在黑名单中。
{ "white-list": { "to-remove": [A] } }
则系统会将该算子从白名单中删除,然后添加到灰名单中,最终该算子在灰名单中。
将配置好的ops_info.json文件上传到ATC工具所在服务器任意目录,例如上传到$HOME/module,使用示例如下:
--precision_mode=allow_mix_precision --modify_mixlist=$HOME/module/ops_info.json
Atlas 200/300/500 推理产品
Atlas 推理系列产品
Atlas 训练系列产品
Atlas 200I/500 A2推理产品
Atlas A2训练系列产品/Atlas 800I A2推理产品
无。