昇腾社区首页
中文
注册

LinearQuantOperation

功能

带量化的Linear。

图1 LinearQuantOperation

约束

输入x / weight矩阵维度,通过transposeA / transposeB配置要满足矩阵乘的维度关系。

定义

struct LinearQuantParam{
    bool transposeA = false;
    bool transposeB = true;
    bool hasBias = true;
};

成员

成员名称

描述

transposeA

是否转置A矩阵,默认不转置。

当输入x的维度为3时,transposeA必须为false。

transposeB

是否转置B矩阵,默认转置。

hasBias

是否叠加偏置,该偏置为反量化偏置,当前只支持hasBias = true。

输入

参数

维度

数据类型

格式

描述

x

当y为ND或NZ时支持以下维度输入:

  1. x: [batch, m, k]

    weight: [k, n]

  2. x: [m,k]

    weight: [k, n]

当y为NZ格式时,额外支持以下维度输入:

  1. x: [m, k]

    weight: [1, n/32, k, 32]

  2. x: [batch, m, k]

    weight: [1, n/32, k, 32]

int8

ND

当前只支持int8。

weight

int8

ND/NZ

当前只支持int8。

weight为NZ时,倒数第二维为16整数倍。

  1. 当weight为二维输入时,最后一维大小为32整数倍。
  2. 当weight为四维输入时,最后一维大小为32。

bias

[1, n] / [n]

float16/int32

ND

hasBias=true时才输入。

Atlas 推理系列产品(配置Ascend 310P AI处理器):float16

deqScale

[1, x] / [x]

float

ND

反量化的Scale。

对于维度中的x:

Atlas 推理系列产品(配置Ascend 310P AI处理器):x=n

输出

参数

维度

数据类型

格式

output

根据以上输入维度,输出维度为:

  1. output: [batch, m, n]
  2. output: [m ,n]

当y为NZ格式时,对应以下维度输出:

  1. output: [m, n]
  2. output: [batch, m, n]

float16

ND