DequantizeLinear

DequantizeLinear - 23

版本

  • 名稱: DequantizeLinear (GitHub)

  • 網域: main

  • since_version: 23

  • 函式: False

  • 支援等級: SupportType.COMMON

  • 形狀推論: True

此版本的運算子自版本 23 開始提供。

摘要

線性反量化運算子。它會消耗一個量化的張量、一個縮放比例和一個零點,以計算全精度張量。反量化公式為 y = (x - x_zero_point) * x_scalex_scalex_zero_point 必須具有相同的形狀,決定量化的精細度:純量用於每個張量/每層量化,一維張量用於每軸量化,或具有與輸入相同的等級,用於區塊量化。有關量化精細度的詳細資訊,請參閱 QuantizeLinear。

x_zero_pointx 必須具有相同的類型。xy 必須具有相同的形狀。在反量化 int32 的情況下,沒有零點(零點應為 0)。zero-point 通常不用於 float8 類型量化的情況,但為了保持一致性,反量化公式保持不變,且 x_scale 仍決定輸出類型。

屬性

  • axis - 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 的縮放比例。對於每個張量/層的反量化,縮放比例是純量;對於每個軸的反量化,它是 1 維張量;對於區塊反量化,它具有與輸入相同的形狀,但執行區塊的維度除外。

  • x_zero_point (選用,異質) - T1

    輸入 x 的零點。形狀必須符合 x_scale。這是選用的。未指定時,零點為 0。

輸出

  • y (異質) - T2

    N 維全精度輸出張量。它具有與輸入 x 相同的形狀。

類型限制

  • 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' 決定輸出類型。

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 類型量化的情況下,通常不使用零點,但為了保持一致性,反量化公式保持不變,並且 x_scale 仍然決定輸出類型。

屬性

  • axis - 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 的縮放比例。對於每個張量/層的反量化,縮放比例是純量;對於每個軸的反量化,它是 1 維張量;對於區塊反量化,它具有與輸入相同的形狀,但執行區塊的維度除外。

  • 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 量化的情況下,通常不使用零點,但為了保持一致性,反量化公式保持不變,且 ‘x_scale’ 仍然決定輸出類型。

屬性

  • axis - 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

  • since_version: 13

  • 函式: False

  • 支援等級: SupportType.COMMON

  • 形狀推論: True

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

摘要

線性反量化運算符。它會取用一個量化張量、一個縮放比例和一個零點來計算完整精度的張量。反量化公式為 y = (x - x_zero_point) * x_scalex_scalex_zero_point 必須具有相同的形狀,並且可以是純量(用於每個張量/每層量化),或是一維張量(用於每個軸量化)。x_zero_pointx 必須具有相同的類型。xy 必須具有相同的形狀。在對 int32 進行反量化的情況下,沒有零點(零點應該是 0)。

屬性

  • axis - 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 位元整數張量。