---
title: convert_model
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/amct/atlasamct_16_0282.html
sourcePath: /source/zh/canncommercial/900/devaids/amct/atlasamct_16_0282.html
indexId: 11f3d9ab0659b5bafd367286727eab244caaf9f56a1a2dc71b5bcb4a702775e465
---
# convert_model

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | x |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | x |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | x |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |


#### 功能说明

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


#### 函数原型

```
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 |


#### 返回值说明

无


#### 约束说明

- 用户模型需要保证和量化因子记录文件配套，例如用户对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类型）进行二次量化。


#### 调用示例

```
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')
```

落盘文件说明：

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

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