ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

CANN/GE 量化简易配置指南

CANN/GE 量化简易配置指南 量化简易配置文件【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge如果要自动控制量化过程例如控制哪些层是否量化、控制使用什么量化算法则可以通过本章节构造的cfg配置文件实现。配置文件参数配置文件支持的消息以及对应参数说明如下AMCTConfigAMCT训练后量化的简易配置。是否必填类型字段说明optionalboolactivation_offset数据量化是否带offset。全局配置参数。- 带offset默认值数据量化使用非对称量化。- 不带offset数据量化使用对称量化。optionalbooljoint_quant是否进行Eltwise联合量化默认为false表示关闭联合量化功能。开启后对部分网络可能会存在性能提升但是精度下降的问题。repeatedstringskip_layers不需要量化层的层名。repeatedstringskip_layer_types不需要量化的层类型。optionalint32version简易配置文件的版本。optionalCalibrationConfigcommon_config通用的量化配置全局量化配置参数。若某层未被override_layer_types或者override_layer_configs重写则使用该配置。参数优先级override_layer_configsoverride_layer_typescommon_configrepeatedOverrideLayerTypeoverride_layer_types重写某一类型层的量化配置即对哪些层进行差异化量化。例如全局量化配置参数配置的量化因子搜索步长为0.01可以通过该参数对部分层进行差异化量化可以配置搜索步长为0.02。参数优先级override_layer_configsoverride_layer_typescommon_configrepeatedOverrideLayeroverride_layer_configs重写某一层的量化配置即对哪些层进行差异化量化。例如全局量化配置参数配置的量化因子搜索步长为0.01可以通过该参数对部分层进行差异化量化可以配置搜索步长为0.02。参数优先级override_layer_configsoverride_layer_typescommon_configoptionalbooldo_fusion是否开启BN融合功能默认为true表示开启该功能。repeatedstringskip_fusion_layers跳过BN融合的层配置之后这些层不会进行BN融合。repeatedTensorQuantizetensor_quantize对网络模型中指定节点的输入Tensor进行训练后量化来提高数据搬运时的推理性能。当前仅支持对MaxPool/Add/Eltwise算子做tensor量化。OverrideLayerType支持量化的层类型的名称。是否必填类型字段说明requiredstringlayer_type支持量化的层类型的名称。requiredCalibrationConfigcalibration_config重置的量化配置。OverrideLayer重置某层量化配置。是否必填类型字段说明requiredstringlayer_name被重置层的层名。requiredCalibrationConfigcalibration_config重置的量化配置。CalibrationConfigCalibration量化的配置。是否必填类型字段说明-ARQuantizearq_quantize权重量化算法配置。arq_quantizeARQ量化算法配置。-FMRQuantizeifmr_quantize数据量化算法配置。ifmr_quantizeIFMR量化算法配置。optionalboolweight_compress_only是否只进行权重量化。仅权重量化场景支持的数据类型必须为Float32Float16。- true只进行权重量化。- false权重和数据都量化。默认为false。ARQuantizeARQ权重量化算法配置。是否必填类型字段说明optionalboolchannel_wise是否对每个channel采用不同的量化因子。- true每个channel独立量化量化因子不同。- false所有channel同时量化共享量化因子。optionalboolasymmetric是否对权重进行非对称量化。用于控制逐层量化算法的选择。只在weight_compress_only为true时生效若weight_compress_only设置为false则asymmetric只能设置为false。- true权重量化使用非对称量化offset不为0。- false权重量化使用对称量化offset为0默认为false。如果override_layer_configs、override_layer_types、common_config配置项都配置该参数则生效优先级为override_layer_configsoverride_layer_typescommon_configoptionaluint32quant_bits权重量化位宽。支持配置为INT6、INT7、INT8默认为INT8量化。该字段配置为INT6、INT7仅支持Conv2d类型算子。如果在common_config中配置quant_bits为INT6、INT7则只对Conv2d算子生效其他算子改为默认INT8。针对ONNX网络模型如果在override_layer_types中指定Conv类算子quant_bits为INT6、INT7则只对weight dim为4场景生效。FMRQuantizeFMR数据量化算法配置。是否必填类型字段说明optionalfloatsearch_range_start量化因子搜索范围左边界。optionalfloatsearch_range_end量化因子搜索范围右边界。optionalfloatsearch_step量化因子搜索步长。optionalfloatmax_percentile最大值搜索位置。optionalfloatmin_percentile最小值搜索位置。optionalboolasymmetric是否对数据进行非对称量化。用于控制逐层量化算法的选择。- true非对称量化- false对称量化如果override_layer_configs、override_layer_types、common_config配置项都配置该参数或者配置了activation_offset参数则生效优先级为override_layer_configsoverride_layer_typescommon_configactivation_offsetoptionalCalibrationDataTypedst_type量化位宽数据量化是采用INT8量化还是INT16量化默认为INT8量化。当前版本仅支持INT8量化。TensorQuantize需要进行训练后量化的输入Tensor配置。是否必填类型字段说明requiredstringlayer_name需要对节点输入Tensor进行训练后量化的节点名称当前仅支持对MaxPool算子的输入Tensor进行量化。requireduint32input_index需要对节点输入Tensor进行训练后量化的节点的输入索引。-FMRQuantizeifmr_quantize数据量化算法配置。ifmr_quantizeIFMR量化算法配置。默认为IFMR量化算法。配置样例基于该文件构造的均匀量化简易配置文件quant.cfg样例如下所示_Optype_需要配置为基于Ascend IR定义的算子类型详细对应关系请参见支持量化的层及约束。# global quantize parameter activation_offset : true joint_quant : false enable_auto_nuq : false version : 1 skip_layers : Optype skip_layer_types: Optype do_fusion: true skip_fusion_layers : Optype common_config : { arq_quantize : { channel_wise : true quant_bits : 7 } ifmr_quantize : { search_range_start : 0.7 search_range_end : 1.3 search_step : 0.01 max_percentile : 0.999999 min_percentile : 0.999999 asymmetric : true } } override_layer_types : { layer_type : Optype calibration_config : { arq_quantize : { channel_wise : false } ifmr_quantize : { search_range_start : 0.8 search_range_end : 1.2 search_step : 0.02 max_percentile : 0.999999 min_percentile : 0.999999 asymmetric : false } } } override_layer_configs : { layer_name : Opname calibration_config : { arq_quantize : { channel_wise : true } ifmr_quantize : { search_range_start : 0.8 search_range_end : 1.2 search_step : 0.02 max_percentile : 0.999999 min_percentile : 0.999999 asymmetric : false } } } tensor_quantize { layer_name: Opname input_index: 0 ifmr_quantize: { search_range_start : 0.7 search_range_end : 1.3 search_step : 0.01 min_percentile : 0.999999 asymmetric : false } } tensor_quantize { layer_name: Opname input_index: 0 }基于该文件构造的仅权重量化简易配置文件quant.cfg配置示例activation_offset : true joint_quant : false version : 1 do_fusion: true common_config : { weight_compress_only : true arq_quantize : { channel_wise : true asymmetric : false } } override_layer_types : { layer_type : Optype calibration_config : { weight_compress_only : true arq_quantize : { channel_wise : true asymmetric : true quant_bits : 6 } } } override_layer_configs : { layer_name : Opname calibration_config : { weight_compress_only : true arq_quantize : { channel_wise : true asymmetric : true } } }【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表