文档
注册

convert_model

功能说明

根据用户自己计算得到的量化因子以及Caffe模型,适配成可以在昇腾AI处理器上做在线推理的Deploy量化部署模型和可以在Caffe环境下进行精度仿真的Fakequant量化模型。

约束说明

  • 用户模型需要保证和量化因子记录文件配套,例如用户对Conv+BN+Scale结构先进行融合再计算得到融合Conv的量化因子,则所提供用于转换的原始caffe模型中Conv+BN+Scale结构也需要预先进行融合。
  • 量化因子记录文件格式及记录内容需要严格符合AMCT定义要求,详细信息请参见record记录文件
  • 仅支持对AMCT支持量化的层:全连接层(InnerProduct:transpose属性为true或axis!=1都不进行量化)、卷积层(Convolution:filter维度为4)、反卷积层(Deconvolution:group为1、dilation为1、filter维度为4)、平均下采样层(Pooling:下采样方式为AVE,且非global pooling)。
  • 该接口支持对用户模型中的Conv+BN+Scale结构进行融合,且可逐层配置是否做融合。
  • 仅支持输入原始浮点数模型进行适配,不支持用户对已量化模型(包含量化工具插入的Quant、DeQuant、AntiQuant层,或参数已量化为int8, int32类型)进行二次量化。

函数原型

convert_model(model_file,weights_file,scale_offset_record_file,save_path)

参数说明

参数名

输入/返回值

含义

使用限制

model_file

输入

用户Caffe模型的定义文件,格式为.prototxt。

数据类型:string

使用约束:model_file中包含的用于推理的层,LayerParameter设置满足推理要求,比如BatchNorm层的use_global_stats必须设置为1。

weights_file

输入

用户训练好的Caffe模型权重文件,格式为.caffemodel。

数据类型:string

scale_offset_record_file

输入

用户计算得到的量化因子记录文件,格式为.txt。

数据类型:string

save_path

输入

模型存放路径。该路径需要包含模型名前缀,例如./quantized_model/*model

数据类型:string

返回值说明

无。

函数输出

  • 精度仿真模型文件:一个模型定义文件,一个模型权重文件,文件名中包含fake_quant;模型可在Caffe环境下做推理实现量化精度仿真。
  • 部署模型文件:一个模型定义文件,一个模型权重文件,文件名中包含deploy;模型经过ATC工具转换后可部署到昇腾AI处理器上。
  • 量化信息文件 :该文件记录了AMCT插入的量化算子位置以及算子融合信息,用于量化后的模型进行精度比对使用。

重新执行适配时,该接口输出的上述文件将会被覆盖。

调用示例

1
2
3
4
5
from amct_caffe import convert_model
convert_model(model_file='ResNet-50-deploy.prototxt',
              weights_file='ResNet-50-weights.caffemodel',
              scale_offset_record_file='record.txt',
              save_path='./quantized_model/model')
搜索结果
找到“0”个结果

当前产品无相关内容

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