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

#### 产品支持情况

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


#### 功能说明

构造Linear的QAT算子。


#### 函数原型

- 直接构造接口：
  1 qat = amct_pytorch.nn.module.quantization.linear.LinearQAT(in_features, out_features, bias, device, dtype, config)

- 基于原生算子构造接口：
  1 qat = amct_pytorch.nn.module.quantization.linear.LinearQAT.from_float(mod, config)


#### 参数说明


**表1 直接构造接口参数说明**

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| in\_features | 输入 | 含义：输入特征数。 数据类型：int |
| out\_features | 输入 | 含义：输出特征数。 数据类型：int |
| bias | 输入 | 含义：是否开启偏置项参与学习。 数据类型：bool，其他数据类型（比如整数，字符串，列表等）按照Python真值判断规则转换。 默认值为True |
| device | 输入 | 含义：运行设备。 默认值：None |
| dtype | 输入 | 含义：torch数值类型。 数据类型：torch数据类型，仅支持torch.float32 |
| config | 输入 | 含义：量化配置，配置参考样例如下，量化配置参数的具体说明请参见量化配置参数说明。 config = { "retrain\_enable":true, "retrain\_data\_config": { "dst\_type": "INT8", "batch\_num": 10, "fixed\_min": False, "clip\_min": \-1.0, "clip\_max": 1.0 }, "retrain\_weight\_config": { "dst\_type": "INT8", "weights\_retrain\_algo": "arq\_retrain", "channel\_wise": False } } 数据类型：dict 默认值：None |


**表2 基于原生算子构造接口**

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| mod | 输入 | 含义：待量化的原生Linear算子。 数据类型：torch.nn.Module |
| config | 输入 | 含义：量化配置。配置参考样例如下，量化配置参数的具体说明请参见量化配置参数说明。 config = { "retrain\_enable":true, "retrain\_data\_config": { "dst\_type": "INT8", "batch\_num": 10, "fixed\_min": False, "clip\_min": \-1.0, "clip\_max": 1.0 }, "retrain\_weight\_config": { "dst\_type": "INT8", "weights\_retrain\_algo": "arq\_retrain", "channel\_wise": False } } 数据类型：dict 默认值：None |


#### 返回值说明

- 直接构造：返回构造的QAT单算子实例。
- 基于原生算子构造：torch.nn.Module转化后的QAT单算子。


#### 调用示例

- 直接构造：
  1 2 3 4 from amct_pytorch.nn.module.quantization.linear import LinearQAT LinearQAT(in_features=1, out_features=1, bias=True, device=None, dtype=None, config=None)

- 基于原生算子构造：
  1 2 3 4 5 6 import torch from amct_pytorch.nn.module.quantization.linear import LinearQAT linear_op = torch.nn.Linear(in_features=1, out_features=1, bias=True, device=None, dtype=None) LinearQAT.from_float(mod=linear_op, config=None)
