DequantizeLinear

DequantizeLinear - 25

版本

  • 名称: DequantizeLinear (GitHub)

  • : main

  • since_version: 25

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符已在版本 25 及之后可用。

摘要

线性反量化运算符。它消耗一个量化张量、一个比例因子和一个零点来计算全精度张量。反量化公式为 y = (x - x_zero_point) * x_scalex_scalex_zero_point 必须具有相同的形状,以确定量化的粒度:对于逐张量/逐层量化,它是一个标量;对于逐轴量化,它是一个一维张量;对于分块量化,它具有与输入相同的秩。有关量化粒度的详细信息,请参阅 QuantizeLinear。

x_zero_pointx 必须具有相同的类型。xy 必须具有相同的形状。在对 int32 进行反量化的情况下,没有零点(零点应为 0)。在 float8 和 4 位类型量化的情况下,通常不使用 zero-point,但为了保持一致性,反量化公式保持不变。输出类型由属性 output_dtype 确定。如果未提供 output_dtype,则输出类型与 x_scale 相同。输出类型也决定了乘法运算的精度。

属性

  • 轴 - INT(默认值为 '1'

    (可选) 输入张量反量化维度的轴。用于逐轴和分块量化。负值表示从后向前计数维度。接受的范围是 [-r, r-1],其中 r = rank(input)

  • block_size - INT (默认值是 '0')

    (可选) 量化块的大小(每个比例因子重复的次数)。仅用于分块量化。块大小是一个正整数。给定 x 的形状 (D0, ..., Di, ..., Dn)y_scale 的形状 (S0, ... Si, ...Sn) 并且 axis=i,接受的范围是 [ceil(Di/Si), ceil(Di/(Si-1))-1]

  • output_dtype - INT (默认值是 '0')

    (可选) 输出数据类型。如果未提供,则输出数据类型从 x_scale 数据类型 (T2) 推断。

输入

2 到 3 个输入之间。

  • x (异构) - T1

    N 维量化输入张量,待反量化。

  • x_scale (异构) - T2

    输入 x 的比例因子。对于逐张量/层反量化,比例因子是一个标量;对于逐轴反量化,它是一个一维张量;对于分块反量化,它具有与输入相同的形状,但在一个维度上进行分块。

  • x_zero_point (可选, 异构) - T1

    输入 x 的零点。形状必须与 x_scale 匹配。它是可选的。未指定时零点为 0。

输出

  • y (异构) - T3

    N 维全精度输出张量。它与输入 x 具有相同的形状。数据类型由 output_dtype 属性指定,如果未提供,则由 x_scale 的类型指定。

类型约束

  • T1 在 ( tensor(float4e2m1), tensor(float8e4m3fn), tensor(float8e4m3fnuz), tensor(float8e5m2), tensor(float8e5m2fnuz), tensor(int16), tensor(int2), tensor(int32), tensor(int4), tensor(int8), tensor(uint16), tensor(uint2), tensor(uint4), tensor(uint8) )

    输入 'x_zero_point' 和 'x' 的类型。

  • T2 在 ( tensor(bfloat16), tensor(float), tensor(float16), tensor(float8e8m0) )

    输入 'x_scale' 的类型。

  • T3 在 ( tensor(bfloat16), tensor(float), tensor(float16) )

    输出 'y' 的类型。

DequantizeLinear - 24

版本

  • 名称: DequantizeLinear (GitHub)

  • : main

  • 起始版本24

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符已可用于版本 24 及以上

摘要

线性反量化运算符。它消耗一个量化张量、一个比例因子和一个零点来计算全精度张量。反量化公式为 y = (x - x_zero_point) * x_scalex_scalex_zero_point 必须具有相同的形状,以确定量化的粒度:对于逐张量/逐层量化,它是一个标量;对于逐轴量化,它是一个一维张量;对于分块量化,它具有与输入相同的秩。有关量化粒度的详细信息,请参阅 QuantizeLinear。

x_zero_pointx 必须具有相同的类型。xy 必须具有相同的形状。在对 int32 进行反量化的情况下,没有零点(零点应为 0)。在 float8 和 4 位类型量化的情况下,通常不使用 zero-point,但为了保持一致性,反量化公式保持不变。输出类型由属性 output_dtype 确定。如果未提供 output_dtype,则输出类型与 x_scale 相同。输出类型也决定了乘法运算的精度。

属性

  • 轴 - INT(默认值为 '1'

    (可选) 输入张量反量化维度的轴。用于逐轴和分块量化。负值表示从后向前计数维度。接受的范围是 [-r, r-1],其中 r = rank(input)

  • block_size - INT (默认值是 '0')

    (可选) 量化块的大小(每个比例因子重复的次数)。仅用于分块量化。块大小是一个正整数。给定 x 的形状 (D0, ..., Di, ..., Dn)y_scale 的形状 (S0, ... Si, ...Sn) 并且 axis=i,接受的范围是 [ceil(Di/Si), ceil(Di/(Si-1))-1]

  • output_dtype - INT (默认值是 '0')

    (可选) 输出数据类型。如果未提供,则输出数据类型从 x_scale 数据类型 (T2) 推断。

输入

2 到 3 个输入之间。

  • x (异构) - T1

    N 维量化输入张量,待反量化。

  • x_scale (异构) - T2

    输入 x 的比例因子。对于逐张量/层反量化,比例因子是一个标量;对于逐轴反量化,它是一个一维张量;对于分块反量化,它具有与输入相同的形状,但在一个维度上进行分块。

  • x_zero_point (可选, 异构) - T1

    输入 x 的零点。形状必须与 x_scale 匹配。它是可选的。未指定时零点为 0。

输出

  • y (异构) - T3

    N 维全精度输出张量。它与输入 x 具有相同的形状。数据类型由 output_dtype 属性指定,如果未提供,则由 x_scale 的类型指定。

类型约束

  • T1 在 ( tensor(float4e2m1), tensor(float8e4m3fn), tensor(float8e4m3fnuz), tensor(float8e5m2), tensor(float8e5m2fnuz), tensor(int16), tensor(int32), tensor(int4), tensor(int8), tensor(uint16), tensor(uint4), tensor(uint8) )

    输入 'x_zero_point' 和 'x' 的类型。

  • T2 在 ( tensor(bfloat16), tensor(float), tensor(float16), tensor(float8e8m0) )

    输入 'x_scale' 的类型。

  • T3 在 ( tensor(bfloat16), tensor(float), tensor(float16) )

    输出 'y' 的类型。

DequantizeLinear - 23

版本

  • 名称: DequantizeLinear (GitHub)

  • : main

  • 起始版本23

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符已可用于版本 23 及以上

摘要

线性反量化运算符。它消耗一个量化张量、一个比例因子和一个零点来计算全精度张量。反量化公式为 y = (x - x_zero_point) * x_scalex_scalex_zero_point 必须具有相同的形状,以确定量化的粒度:对于逐张量/逐层量化,它是一个标量;对于逐轴量化,它是一个一维张量;对于分块量化,它具有与输入相同的秩。有关量化粒度的详细信息,请参阅 QuantizeLinear。

x_zero_pointx 必须具有相同的类型。xy 必须具有相同的形状。在对 int32 进行反量化的情况下,没有零点(零点应为 0)。在 float8 和 4 位类型量化的情况下,通常不使用 zero-point,但为了保持一致性,反量化公式保持不变。输出类型由属性 output_dtype 确定。如果未提供 output_dtype,则输出类型与 x_scale 相同。输出类型也决定了乘法运算的精度。

属性

  • 轴 - INT(默认值为 '1'

    (可选) 输入张量反量化维度的轴。用于逐轴和分块量化。负值表示从后向前计数维度。接受的范围是 [-r, r-1],其中 r = rank(input)

  • block_size - INT (默认值是 '0')

    (可选) 量化块的大小(每个比例因子重复的次数)。仅用于分块量化。块大小是一个正整数。给定 x 的形状 (D0, ..., Di, ..., Dn)y_scale 的形状 (S0, ... Si, ...Sn) 并且 axis=i,接受的范围是 [ceil(Di/Si), ceil(Di/(Si-1))-1]

  • output_dtype - INT (默认值是 '0')

    (可选) 输出数据类型。如果未提供,则输出数据类型从 x_scale 数据类型 (T2) 推断。

输入

2 到 3 个输入之间。

  • x (异构) - T1

    N 维量化输入张量,待反量化。

  • x_scale (异构) - T2

    输入 x 的比例因子。对于逐张量/层反量化,比例因子是一个标量;对于逐轴反量化,它是一个一维张量;对于分块反量化,它具有与输入相同的形状,但在一个维度上进行分块。

  • x_zero_point (可选, 异构) - T1

    输入 x 的零点。形状必须与 x_scale 匹配。它是可选的。未指定时零点为 0。

输出

  • y (异构) - T3

    N 维全精度输出张量。它与输入 x 具有相同的形状。数据类型由 output_dtype 属性指定,如果未提供,则由 x_scale 的类型指定。

类型约束

  • T1 在 ( tensor(float4e2m1), tensor(float8e4m3fn), tensor(float8e4m3fnuz), tensor(float8e5m2), tensor(float8e5m2fnuz), tensor(int16), tensor(int32), tensor(int4), tensor(int8), tensor(uint16), tensor(uint4), tensor(uint8) )

    输入 'x_zero_point' 和 'x' 的类型。

  • T2 在 ( tensor(bfloat16), tensor(float), tensor(float16) )

    输入 'x_scale' 的类型。

  • T3 在 ( tensor(bfloat16), tensor(float), tensor(float16) )

    输出 'y' 的类型。

DequantizeLinear - 21

版本

  • 名称: DequantizeLinear (GitHub)

  • : main

  • since_version: 21

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符自 版本 21 起可用。

摘要

线性反量化运算符。它消耗一个量化张量、一个比例因子和一个零点来计算全精度张量。反量化公式为 y = (x - x_zero_point) * x_scalex_scalex_zero_point 必须具有相同的形状,以确定量化的粒度:对于逐张量/逐层量化,它是一个标量;对于逐轴量化,它是一个一维张量;对于分块量化,它具有与输入相同的秩。有关量化粒度的详细信息,请参阅 QuantizeLinear。x_zero_pointx 必须具有相同的类型。xy 必须具有相同的形状。在对 int32 进行反量化的情况下,没有零点(零点应为 0)。在 float8 类型量化的情况下,通常不使用 zero-point,但为了保持一致性,反量化公式保持不变,并且 x_scale 仍然决定输出类型。

属性

  • 轴 - INT(默认值为 '1'

    (可选) 输入张量反量化维度的轴。用于逐轴和分块量化。负值表示从后向前计数维度。接受的范围是 [-r, r-1],其中 r = rank(input)

  • block_size - INT (默认值是 '0')

    (可选) 量化块的大小(每个比例因子重复的次数)。仅用于分块量化。块大小是一个正整数。给定 x 的形状 (D0, ..., Di, ..., Dn)y_scale 的形状 (S0, ... Si, ...Sn) 并且 axis=i,接受的范围是 [ceil(Di/Si), ceil(Di/(Si-1))-1]

输入

2 到 3 个输入之间。

  • x (异构) - T1

    N 维量化输入张量,待反量化。

  • x_scale (异构) - T2

    输入 x 的比例因子。对于逐张量/层反量化,比例因子是一个标量;对于逐轴反量化,它是一个一维张量;对于分块反量化,它具有与输入相同的形状,但在一个维度上进行分块。

  • x_zero_point (可选, 异构) - T1

    输入 x 的零点。形状必须与 x_scale 匹配。它是可选的。未指定时零点为 0。

输出

  • y (异构) - T2

    N 维全精度输出张量。它与输入 x 具有相同的形状。

类型约束

  • T1 在 ( tensor(float8e4m3fn), tensor(float8e4m3fnuz), tensor(float8e5m2), tensor(float8e5m2fnuz), tensor(int16), tensor(int32), tensor(int4), tensor(int8), tensor(uint16), tensor(uint4), tensor(uint8) )

    输入 'x_zero_point' 和 'x' 的类型。

  • T2 在 ( tensor(bfloat16), tensor(float), tensor(float16) )

    'x_scale' 决定输出类型。

DequantizeLinear - 19

版本

  • 名称: DequantizeLinear (GitHub)

  • : main

  • since_version: 19

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符自 版本 19 起可用。

摘要

线性反量化运算符。它消耗一个量化张量、一个比例因子和一个零点来计算全精度张量。反量化公式为 y = (x - x_zero_point) * x_scalex_scalex_zero_point 必须具有相同的形状,并且可以是用于逐张量/逐层量化的标量,也可以是用于逐轴量化的一维张量。x_zero_pointx 必须具有相同的类型。xy 必须具有相同的形状。在对 int32 进行反量化的情况下,没有零点(零点应为 0)。在 float8e4m3fn、float8e4m3fnuz、float8e5m2、float8e5m2fnuz 量化的情况下,通常不使用 zero-point,但为了保持一致性,反量化公式保持不变,并且 'x_scale' 仍然决定输出类型。

属性

  • 轴 - INT(默认值为 '1'

    (可选) 输入张量反量化维度的轴。仅用于逐轴量化。负值表示从后向前计数维度。接受的范围是 [-r, r-1],其中 r = rank(input)。当输入秩为 1 时,应用逐张量量化,在这种情况下轴是不必要的。

输入

2 到 3 个输入之间。

  • x (异构) - T1

    N 维量化输入张量,待反量化。

  • x_scale (异构) - T2

    输入 'x' 的比例因子。它可以是一个标量,表示逐张量/层反量化,也可以是一个一维张量,用于逐轴反量化。

  • x_zero_point (可选, 异构) - T1

    输入 'x' 的零点。形状必须与 x_scale 匹配。它是可选的。未指定时零点为 0。

输出

  • y (异构) - T2

    N 维全精度输出张量。它与输入 'x' 具有相同的形状。

类型约束

  • T1 在 ( tensor(float8e4m3fn), tensor(float8e4m3fnuz), tensor(float8e5m2), tensor(float8e5m2fnuz), tensor(int32), tensor(int8), tensor(uint8) )

    将 'x_zero_point' 和 'x' 约束为 8 位整数或浮点数,或 /32 位整数张量。

  • T2 在 ( tensor(bfloat16), tensor(float), tensor(float16) )

    'x_scale' 决定输出类型。

DequantizeLinear - 13

版本

  • 名称: DequantizeLinear (GitHub)

  • : main

  • 起始版本: 13

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的运算符自 版本 13 起可用。

摘要

线性反量化运算符。它消耗一个量化张量、一个比例因子和一个零点来计算全精度张量。反量化公式为 y = (x - x_zero_point) * x_scalex_scalex_zero_point 必须具有相同的形状,并且可以是用于逐张量/逐层量化的标量,也可以是用于逐轴量化的一维张量。x_zero_pointx 必须具有相同的类型。xy 必须具有相同的形状。在对 int32 进行反量化的情况下,没有零点(零点应为 0)。

属性

  • 轴 - INT(默认值为 '1'

    (可选) 输入张量反量化维度的轴。对于逐张量量化忽略。负值表示从后向前计数维度。接受的范围是 [-r, r-1],其中 r = rank(input)。

输入

2 到 3 个输入之间。

  • x (异构) - T

    N 维量化输入张量,待反量化。

  • x_scale (异构) - tensor(float)

    输入 'x' 的比例因子。它可以是一个标量,表示逐张量/层反量化,也可以是一个一维张量,用于逐轴反量化。

  • x_zero_point (可选, 异构) - T

    输入 'x' 的零点。形状必须与 x_scale 匹配。它是可选的。未指定时零点为 0。

输出

  • y (异构) - tensor(float)

    N 维全精度输出张量。它与输入 'x' 具有相同的形状。

类型约束

  • T 在 ( tensor(int32), tensor(int8), tensor(uint8) )

    将 'x_zero_point' 和 'x' 约束为 8 位/32 位整数张量。

DequantizeLinear - 10

版本

  • 名称: DequantizeLinear (GitHub)

  • : main

  • since_version: 10

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符已在 版本 10 中提供。

摘要

线性反量化运算符。它消耗一个量化张量、一个比例因子、一个零点来计算全精度张量。反量化公式为 y = (x - x_zero_point) * x_scale。'x_scale' 和 'x_zero_point' 都是标量。'x_zero_point' 和 'x' 必须具有相同的类型。'x' 和 'y' 必须具有相同的形状。在对 int32 进行反量化的情况下,没有零点(零点应为 0)。

输入

2 到 3 个输入之间。

  • x (异构) - T

    N 维量化输入张量,待反量化。

  • x_scale (异构) - tensor(float)

    输入 'x' 的比例因子。它是一个标量,表示逐张量/层量化。

  • x_zero_point (可选, 异构) - T

    输入 'x' 的零点。它是一个标量,表示逐张量/层量化。它是可选的。未指定时默认值为 0。

输出

  • y (异构) - tensor(float)

    N 维全精度输出张量。它与输入 'x' 具有相同的形状。

类型约束

  • T 在 ( tensor(int32), tensor(int8), tensor(uint8) )

    将 'x_zero_point' 和 'x' 约束为 8 位/32 位整数张量。