DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC Struktur (directml.h)
Führt die folgende lineare Quantisierungsfunktion für jedes Element in InputTensor im Hinblick auf das entsprechende Element in ScaleTensor und ZeroPointTensoraus, wobei die Ergebnisse im entsprechenden Element von OutputTensorplatziert werden.
// For uint8 output, Min = 0, Max = 255
// For int8 output, Min = -128, Max = 127
f(input, scale, zero_point) = clamp(round(input / scale) + zero_point, Min, Max)
Die Quantisierung umfasst die Konvertierung in einen Datentyp mit niedrigerer Genauigkeit, um arithmetische Daten zu beschleunigen. Es ist eine gängige Möglichkeit, die Leistung zu den Kosten der Präzision zu erhöhen. Eine Gruppe von 8-Bit-Werten kann schneller berechnet werden, als eine Gruppe von 32-Bit-Werten kann.
Syntax
struct DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *ZeroPointTensor;
const DML_TENSOR_DESC *OutputTensor;
};
Angehörige
InputTensor
Typ: DML_TENSOR_DESC*
Der Tensor, der die Eingaben enthält.
ScaleTensor
Typ: DML_TENSOR_DESC*
Der Tensor, der die Skalen enthält.
Anmerkung
Ein Skalierungswert von 0 führt zu einem nicht definierten Verhalten.
Wenn InputTensor-INT32-ist, muss ScaleTensor-FLOAT32sein. Andernfalls muss ScaleTensor- denselben DataType- wie InputTensor-aufweisen.
ZeroPointTensor
Typ: DML_TENSOR_DESC*
Der Tensor, der den gewünschten Nullpunkt für die Quantisierung enthält.
OutputTensor
Typ: DML_TENSOR_DESC*
Der Ausgabe-Tensor, in den die Ergebnisse geschrieben werden sollen.
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_1_0
eingeführt.
Tensoreinschränkungen
- InputTensor-, OutputTensor, ScaleTensor-und ZeroPointTensor- müssen denselben DimensionCount- und Größenhaben.
- OutputTensor- und ZeroPointTensor- müssen denselben DataType-aufweisen.
Tensorunterstützung
DML_FEATURE_LEVEL_6_2 und höher
Tensor | Art | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 1 bis 8 | FLOAT32, FLOAT16, INT32 |
ScaleTensor | Eingabe | 1 bis 8 | FLOAT32, FLOAT16 |
ZeroPointTensor | Optionale Eingabe | 1 bis 8 | INT8, UINT8 |
OutputTensor | Ausgabe | 1 bis 8 | INT8, UINT8 |
DML_FEATURE_LEVEL_6_0 und höher
Tensor | Art | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 1 bis 8 | FLOAT32, FLOAT16, INT32 |
ScaleTensor | Eingabe | 1 bis 8 | FLOAT32, FLOAT16 |
ZeroPointTensor | Eingabe | 1 bis 8 | INT8, UINT8 |
OutputTensor | Ausgabe | 1 bis 8 | INT8, UINT8 |
DML_FEATURE_LEVEL_3_0 und höher
Tensor | Art | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 1 bis 8 | FLOAT32, INT32 |
ScaleTensor | Eingabe | 1 bis 8 | FLOAT32 |
ZeroPointTensor | Eingabe | 1 bis 8 | INT8, UINT8 |
OutputTensor | Ausgabe | 1 bis 8 | INT8, UINT8 |
DML_FEATURE_LEVEL_2_1 und höher
Tensor | Art | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 4 | FLOAT32, INT32 |
ScaleTensor | Eingabe | 4 | FLOAT32 |
ZeroPointTensor | Eingabe | 4 | INT8, UINT8 |
OutputTensor | Ausgabe | 4 | INT8, UINT8 |
DML_FEATURE_LEVEL_1_0 und höher
Tensor | Art | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 4 | FLOAT32 |
ScaleTensor | Eingabe | 4 | FLOAT32 |
ZeroPointTensor | Eingabe | 4 | UINT8 |
OutputTensor | Ausgabe | 4 | UINT8 |
Anforderungen
Anforderung | Wert |
---|---|
Header- | directml.h |