CANN/AMCT创建蒸馏配置
create_distill_config【免费下载链接】amctAMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。项目地址: https://gitcode.com/cann/amct产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√功能说明蒸馏接口根据图的结构找到所有可蒸馏量化的层和可蒸馏量化的结构自动生成蒸馏量化配置文件并将可蒸馏量化层的量化配置和蒸馏结构写入配置文件。函数原型create_distill_config(config_file, model, input_data, config_definationNone)参数说明参数名输入/输出说明config_file输入含义待生成的蒸馏量化配置文件存放路径及名称。如果存放路径下已经存在该文件则调用该接口时会覆盖已有文件。数据类型stringmodel输入含义待进行蒸馏量化的原始浮点模型已加载权重。数据类型torch.nn.Moduleinput_data输入含义模型的输入数据。一个torch.tensor会被等价为tuple(torch.tensor)。数据类型tupleconfig_defination输入含义简易配置文件。基于distill_config_pytorch.proto文件生成的简易配置文件distill.cfg*.proto文件所在路径为AMCT安装目录/amct_pytorch/proto/。*.proto文件参数解释以及生成的distill.cfg简易量化配置文件样例请参见蒸馏简易配置文件。默认值None。数据类型string返回值说明无调用示例import amct_pytorch as amct # 建立待进行蒸馏量化的网络图结构 model build_model() model.load_state_dict(torch.load(state_dict_path)) input_data tuple([torch.randn(input_shape)]) # 生成蒸馏配置文件 amct.create_distill_config(config_file./configs/config.json, model, input_data, config_defination./configs/distill.cfg)落盘文件说明生成JSON格式的蒸馏量化配置文件样例如下重新执行蒸馏时该接口输出的配置文件将会被覆盖如下为INT8量化场景下的配置文件{ version:1, batch_num:1, group_size:1, data_dump:false, distill_group:[ [ conv1, bn, relu ], [ conv2, bn2, relu2 ] ], conv1:{ quant_enable:true, distill_data_config:{ algo:ulq_quantize, dst_type:INT8 }, distill_weight_config:{ algo:arq_distill, channel_wise:true, dst_type:INT8 } }, conv2:{ quant_enable:true, distill_data_config:{ algo:ulq_quantize, dst_type:INT8 }, distill_weight_config:{ algo:arq_distill, channel_wise:true, dst_type:INT8 } } }【免费下载链接】amctAMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。项目地址: https://gitcode.com/cann/amct创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考