文档
注册
评分
提单
论坛
小AI

量化感知训练简易配置文件说明

retrain_config_tf.proto文件参数说明如表1所示,该文件所在目录为:AMCT安装目录/amct_tensorflow/proto/retrain_config_tf.proto。

该文件可以配置出量化感知训练简易配置文件、稀疏简易配置文件,组合压缩简易配置文件,用户根据场景进行配置

表1 retrain_config_tf.proto参数说明

消息

是否必填

类型

字段

说明

AMCTRetrainConfig

-

-

-

AMCT量化感知训练的简易配置。

repeated

string

skip_layers

按层名跳过哪些层不进行压缩。全局参数,方便后续拓展其他特性场景下可同时跳过的层,比如下述拓展的quant_skip_layers参数、regular_prune_skip_layers参数,则通过skip_layers参数可以同时配置两个特性场景下需要跳过的层。而无需在quant_skip_layers和regular_prune_skip_layers参数中分别配置。

若同时配置了skip_layer和quant_skip_layers参数,或skip_layer和regular_prune_skip_layers参数,则取两者并集。

repeated

string

skip_layer_types

按层类型跳过哪些层不进行压缩。全局参数,方便后续拓展其他特性场景下可同时跳过的层,比如下述拓展的quant_skip_types参数、regular_prune_skip_types参数,则通过skip_layer_types参数可以同时配置两个特性场景下需要跳过的层。而无需在quant_skip_types和regular_prune_skip_types参数中分别配置。

若同时配置了skip_layer_types和quant_skip_types参数,或skip_layer_types和regular_prune_skip_types参数,则取两者并集。

repeated

RetrainOverrideLayer

override_layer_configs

按层名重写哪些层,即对哪些层进行差异化压缩。

例如全局量化配置参数配置的量化位宽为INT8,可以通过该参数对部分层进行差异化量化,可以配置为INT4量化。当前仅支持INT8量化。

参数优先级为:

  • 量化场景:override_layer_configs>override_layer_types>retrain_data_quant_config/retrain_weight_quant_config
  • 稀疏场景:override_layer_configs>override_layer_types>prune_config

repeated

RetrainOverrideLayerType

override_layer_types

按层类型重写哪些层,即对哪些层进行差异化压缩。

例如全局量化配置参数配置的量化位宽为INT8,可以通过该参数对部分层进行差异化量化,可以配置为INT4量化。当前仅支持INT8量化。

参数优先级为:

  • 量化场景:override_layer_configs>override_layer_types>retrain_data_quant_config/retrain_weight_quant_config
  • 稀疏场景:override_layer_configs>override_layer_types>prune_config

optional

uint32

batch_num

量化使用的batch数量。

required

RetrainDataQuantConfig

retrain_data_quant_config

量化感知训练数据量化配置参数。全局量化配置参数。

参数优先级为:override_layer_configs>override_layer_types>retrain_data_quant_config/retrain_weight_quant_config

required

RetrainWeightQuantConfig

retrain_weight_quant_config

量化感知训练权重量化配置参数。全局量化配置参数。

参数优先级为:override_layer_configs>override_layer_types>retrain_data_quant_config/retrain_weight_quant_config

repeated

string

quant_skip_layers

按层名跳过不需要量化的层。量化场景下使用的参数。

若同时配置了skip_layer和quant_skip_layers参数,则取两者并集。

repeated

string

quant_skip_types

按层类型跳过不需要量化的层。量化场景下使用的参数。

若同时配置了skip_layer_types和quant_skip_types参数,则取两者并集。

optional

PruneConfig

prune_config

稀疏配置。全局稀疏配置参数。

参数优先级为:override_layer_configs>override_layer_types>prune_config

repeated

string

regular_prune_skip_layers

按层名跳过不需要稀疏的层。稀疏场景下使用的参数。

若同时配置了skip_layer和regular_prune_skip_layers参数,则取两者并集。

repeated

string

regular_prune_skip_types

按层类型跳过不需要稀疏的层。稀疏场景下使用的参数。

若同时配置了skip_layer_types和regular_prune_skip_types参数,则取两者并集。

RetrainDataQuantConfig

-

-

-

量化感知训练数据量化配置。

-

ActULQquantize

ulq_quantize

数据量化的算法,目前仅支持ULQ。

ActULQquantize

-

-

-

ULQ数据量化算法参数。算法介绍请参见ULQ量化算法

optional

DataType

dst_type

用以选择INT8或INT4量化位宽,默认为INT8。当前仅支持INT8量化。

optional

ClipMaxMin

clip_max_min

初始化的上下限值,如果不配置,默认用ifmr进行初始化。

optional

bool

fixed_min

是否下限不学习且固定为0。默认ReLu后为true,其他为false。

ClipMaxMin

-

-

-

初始上下限。

required

float

clip_max

初始上限值。

required

float

clip_min

初始下限值。

RetrainWeightQuantConfig

-

-

-

量化感知训练权重量化配置。

-

ARQRetrain

arq_retrain

ARQ权重量化算法。

-

WtsULQRetrain

ulq_retrain

ULQ权重量化算法。

ARQRetrain

-

-

-

ARQ权重量化算法参数。算法介绍请参见ARQ权重量化算法

optional

DataType

dst_type

量化位宽,用以选择INT8量化还是INT4量化,默认为INT8量化。当前仅支持INT8量化。

optional

bool

channel_wise

是否做channel wise的arq。

WtsULQRetrain

-

-

-

ULQ权重量化算法参数。算法介绍请参见ULQ量化算法

optional

DataType

dst_type

量化位宽,用以选择INT8量化还是INT4量化,默认为INT8量化。当前仅支持INT8量化。

optional

bool

channel_wise

是否做channel wise的ulq。

RetrainOverrideLayer

-

-

-

重写的层配置。

required

string

layer_name

层名。

required

RetrainDataQuantConfig

retrain_data_quant_config

重写的数据层量化参数。

required

RetrainWeightQuantConfig

retrain_weight_quant_config

重写的权重层量化参数。

optional

PruneConfig

prune_config

重写的稀疏配置参数。

RetrainOverrideLayerType

-

-

-

重写的层类型配置。

required

string

layer_type

层类型。

required

RetrainDataQuantConfig

retrain_data_quant_config

重写的数据层量化参数。

required

RetrainWeightQuantConfig

retrain_weight_quant_config

重写的权重层量化参数。

optional

PruneConfig

prune_config

重写的稀疏配置参数。

PruneConfig

-

-

-

稀疏的配置。

-

FilterPruner

filter_pruner

filter(输出维度通道)稀疏的配置。

-

NOutOfMPruner

n_out_of_m_pruner

4选2稀疏的配置。

FilterPruner

-

-

-

filter稀疏的配置。

-

BalancedL2NormFilterPruner

balanced_l2_norm_filter_prune

BalancedL2Norm算法,算法介绍请参见稀疏算法

BalancedL2NormFilterPruner

-

-

-

BalancedL2Norm算法的配置。

required

float

prune_ratio

稀疏率,被稀疏的filter数量与filter总数量的比值。推荐配置为0.2,即20%的输出通道将被裁剪。

optional

bool

ascend_optimized

是否做昇腾亲和优化,如果稀疏后的模型要部署在昇腾AI处理器上,建议此项配置为true。

NOutOfMPruner

-

-

-

4选2稀疏的配置。

-

L1SelectivePruner

l1_selective_prune

L1SelectivePrune算法,算法介绍请参见稀疏算法

L1SelectivePruner

-

-

-

L1SelectivePrune算法的配置。

optional

NOutOfMType

n_out_of_m_type

目前仅支持M4N2,即每4个连续权重中保留2个权重。

optional

uint32

update_freq

更新4选2稀疏的间隔。update_freq=0时仅在第一个batch更新4选2稀疏的选择,update_freq=2时每2个batch更新一次,以此类推。默认为0。

  • 基于该文件构造的量化感知训练简易配置文件quant.cfg样例如下所示:
    # global quantize parameter
     retrain_data_quant_config: {
         ulq_quantize: {
             clip_max_min: {
                 clip_max: 6.0
                 clip_min: -6.0
             }
             dst_type: INT8
         }
     }
    
     retrain_weight_quant_config: {
         arq_retrain: {
             channel_wise: true
             dst_type: INT8
         }
     }
    
     skip_layers: "conv_1"
    
     override_layer_types : {
         layer_type: "MatMul"
         retrain_weight_quant_config: {
             arq_retrain: {
                channel_wise: false
                dst_type: INT8
             }
         }
     }
    
     override_layer_configs : {    
        layer_name: "layername"   
        retrain_weight_quant_config: {        
           arq_retrain: {   
              channel_wise: false
              dst_type: INT8
             }   
           }
    }
  • 基于该文件构造的通道稀疏简易配置文件prune.cfg样例如下所示:
    # global prune parameter
    prune_config{
        filter_pruner {
            balanced_l2_norm_filter_prune {
                prune_ratio: 0.3
                ascend_optimized: True
            }
        }
    }
    
    # skip layers
    regular_prune_skip_layers: "conv_1"
    regular_prune_skip_layers: "conv_2"
    
    # overide specific layers
    override_layer_configs: {
        layer_name: "conv_3"
        prune_config : {
            filter_pruner: {
                balanced_l2_norm_filter_prune: {
                    prune_ratio: 0.5
                    ascend_optimized: True
                }
            }
        }
    }
  • 基于该文件构造的4选2结构化稀疏简易配置文件selective_prune.cfg样例如下所示:
    # global prune parameter
    prune_config{
        n_out_of_m_pruner {
            l1_selective_prune {
                n_out_of_m_type: M4N2
                update_freq: 0
            }
        }
    }
    
    # skip layers
    regular_prune_skip_layers: "conv_1"
    regular_prune_skip_layers: "conv_2"
    
    # overide specific layers
    override_layer_configs: {
        layer_name: "conv_3"
        prune_config : {
            n_out_of_m_pruner: {
                l1_selective_prune: {
                    n_out_of_m_type: M4N2
                    update_freq: 1
                }
            }
        }
    }
  • 基于该文件构造的组合压缩(通道稀疏+INT8量化)简易配置文件compressed1.cfg样例如下所示:
    prune_config : {
        filter_pruner : {
            balanced_l2_norm_filter_prune : {
                prune_ratio : 0.3
                ascend_optimized: True
            }
        }
    }
    # skip_layers: "skip_layers_name_0"
    skip_layer_types: "Conv2D"
    
    quant_skip_layers: "quant_skip_layers_name_0"
    quant_skip_types: "Conv2D"
    
    retrain_weight_quant_config: {
        arq_retrain: {
        channel_wise: true
        dst_type: INT8
        }
    }
    
    override_layer_types : {
        layer_type: "MatMul"
        retrain_weight_quant_config: {
            arq_retrain: {
            channel_wise: false
            dst_type: INT8
            }
        }
        retrain_data_quant_config : {
            ulq_quantize : {
                clip_max_min : {
                    clip_max : 6.0
                    clip_min : -6.0
                }
            }
        }
        prune_config : {
            filter_pruner : {
                balanced_l2_norm_filter_prune : {
                    prune_ratio : 0.5
                    ascend_optimized: True
                }
            }
        }
    }
  • 基于该文件构造的组合压缩(4选2结构化稀疏+INT8量化)简易配置文件compressed2.cfg样例如下所示:
    prune_config{
        n_out_of_m_pruner {
            l1_selective_prune {
                n_out_of_m_type: M4N2
                update_freq: 0
            }
        }
    }
    # skip_layers: "skip_layers_name_0"
    skip_layer_types: "Conv2D"
    
    quant_skip_layers: "quant_skip_layers_name_0"
    quant_skip_types: "Conv2D"
    
    retrain_weight_quant_config: {
        arq_retrain: {
        channel_wise: true
        dst_type: INT8
        }
    }
    
    override_layer_types : {
        layer_type: "MatMul"
        retrain_weight_quant_config: {
            arq_retrain: {
            channel_wise: false
            dst_type: INT8
            }
        }
        retrain_data_quant_config : {
            ulq_quantize : {
                clip_max_min : {
                    clip_max : 6.0
                    clip_min : -6.0
                }
            }
        }
        prune_config{
            n_out_of_m_pruner {
                l1_selective_prune {
                    n_out_of_m_type: M4N2
                    update_freq: 1
                }
            }
        }
    }
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词