DequantizeLinear¶
DequantizeLinear - 23¶
版本¶
網域:
main
since_version:
23
函式:
False
支援等級:
SupportType.COMMON
形狀推論:
True
此版本的運算子自版本 23 開始提供。
摘要¶
線性反量化運算子。它會消耗一個量化的張量、一個縮放比例和一個零點,以計算全精度張量。反量化公式為 y = (x - x_zero_point) * x_scale
。x_scale
和 x_zero_point
必須具有相同的形狀,決定量化的精細度:純量用於每個張量/每層量化,一維張量用於每軸量化,或具有與輸入相同的等級,用於區塊量化。有關量化精細度的詳細資訊,請參閱 QuantizeLinear。
x_zero_point
和 x
必須具有相同的類型。x
和 y
必須具有相同的形狀。在反量化 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¶
版本¶
網域:
main
since_version:
21
函式:
False
支援等級:
SupportType.COMMON
形狀推論:
True
此版本的運算子自版本 21 開始提供。
摘要¶
線性反量化運算符。它會取用一個量化張量、一個縮放比例和一個零點來計算完整精度的張量。反量化公式為 y = (x - x_zero_point) * x_scale
。x_scale
和 x_zero_point
必須具有相同的形狀,決定量化的粒度:對於每個張量/每層量化,它是一個純量;對於每個軸量化,它是一個一維張量;對於分塊量化,它的階數與輸入相同。有關量化粒度的詳細資訊,請參閱 QuantizeLinear。x_zero_point
和 x
必須具有相同的類型。x
和 y
必須具有相同的形狀。在對 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¶
版本¶
網域:
main
since_version:
19
函式:
False
支援等級:
SupportType.COMMON
形狀推論:
True
此版本的運算符自版本 19 起可用。
摘要¶
線性反量化運算符。它會取用一個量化張量、一個縮放比例和一個零點來計算完整精度的張量。反量化公式為 y = (x - x_zero_point) * x_scale
。x_scale
和 x_zero_point
必須具有相同的形狀,並且可以是純量(用於每個張量/每層量化),或是一維張量(用於每個軸量化)。x_zero_point
和 x
必須具有相同的類型。x
和 y
必須具有相同的形狀。在對 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¶
版本¶
網域:
main
since_version:
13
函式:
False
支援等級:
SupportType.COMMON
形狀推論:
True
此版本的運算符自版本 13 起可用。
摘要¶
線性反量化運算符。它會取用一個量化張量、一個縮放比例和一個零點來計算完整精度的張量。反量化公式為 y = (x - x_zero_point) * x_scale
。x_scale
和 x_zero_point
必須具有相同的形狀,並且可以是純量(用於每個張量/每層量化),或是一維張量(用於每個軸量化)。x_zero_point
和 x
必須具有相同的類型。x
和 y
必須具有相同的形狀。在對 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¶
版本¶
網域:
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 位元整數張量。