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

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | 量化感知训练： INT8量化：√ 通道稀疏：√ 4选2结构化稀疏：x |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | 量化感知训练： INT8量化：√ 通道稀疏：√ 4选2结构化稀疏：√ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | 量化感知训练： INT8量化：√ 通道稀疏：√ 4选2结构化稀疏：√ |
| Atlas 200I/500 A2 推理产品 | 量化感知训练： INT8量化：√ 通道稀疏：√ 4选2结构化稀疏：√ |
| Atlas 推理系列产品 | 量化感知训练： INT8量化：√ 通道稀疏：√ 4选2结构化稀疏：x |
| Atlas 训练系列产品 | 量化感知训练： INT8量化：√ 通道稀疏：√ 4选2结构化稀疏：x |


注：特性中标记“x”的产品，调用接口不会报错，但是获取不到性能收益。


#### 功能说明

静态组合压缩接口，将输入的待静态组合压缩的模型按照给定的组合压缩配置文件进行压缩处理，即将传入的模型先进行稀疏（通道稀疏或者4选2结构化稀疏，二选一），后对模型插入量化相关的算子（数据和权重的量化感知训练层以及searchN的层），生成稀疏和量化因子记录文件record_file（如果配置存在），返回修改后的torch.nn.Module模型。


#### 函数原型

```
compressed_retrain_model = create_compressed_retrain_model(model, input_data, config_defination, record_file)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| model | 输入 | 含义：PyTorch的model。 数据类型：torch.nn.Module |
| input\_data | 输入 | 含义：模型的输入数据。 数据类型：tuple |
| config\_defination | 输入 | 含义：静态组合压缩简易配置文件。 基于retrain\_config\_pytorch.proto文件生成的简易配置文件compressed.cfg，\*.proto文件所在路径为：AMCT安装目录/amct\_pytorch/proto/。\*.proto文件参数解释以及生成的compressed.cfg简易配置文件样例请参见量化感知训练简易配置文件。 数据类型：string |
| record\_file | 输入 | 含义：待记录稀疏和量化因子文件路径及名称。 数据类型：string |


#### 返回值说明

根据配置文件进行稀疏后（如果配置稀疏），且插入量化相关层（如果配置量化）的torch.nn.Module静态组合压缩模型。


#### 约束说明

组合压缩配置文件至少存在一个配置：稀疏配置或者量化配置。


#### 调用示例

```
import amct_pytorch as amct
# 建立待进行静态组合压缩的网络
model = build_model()
input_data = tuple([torch.randn(input_shape)])

# 调用静态组合压缩API
record_file = os.path.join(TMP, 'compressed_record.txt')
config_defination = './compressed_cfg.cfg'

compressed_retrain_model = amct.create_compressed_retrain_model(
                                model,
                                input_data,
                                config_defination,
                                record_file)
```

落盘文件说明：

保存的静态组合压缩记录文件record_file，如果简易配置文件中含有稀疏配置，则在该函数完成后，record_file中含有稀疏记录信息。
