DML_CONVOLUTION_INTEGER_OPERATOR_DESC-Struktur (directml.h)
Führt eine Konvolution des FilterTensor mit dem InputTensor aus. Dieser Operator führt Vorwärtskonvolution für ganzzahlige Daten aus. Optionale Nullpunkt-Tensoren können auch verwendet werden, um Nullpunktwerte vom Eingabe- und Filter tensor zu subtrahieren.
Syntax
struct DML_CONVOLUTION_INTEGER_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *InputZeroPointTensor;
const DML_TENSOR_DESC *FilterTensor;
const DML_TENSOR_DESC *FilterZeroPointTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT DimensionCount;
const UINT *Strides;
const UINT *Dilations;
const UINT *StartPadding;
const UINT *EndPadding;
UINT GroupCount;
};
Member
InputTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Eingabedaten enthält. Die erwarteten Dimensionen des InputTensor sind { BatchCount, InputChannelCount, InputHeight, InputWidth }
.
InputZeroPointTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Ein optionaler Tensor, der die eingegebenen Nullpunktdaten enthält. Die erwarteten Dimensionen des InputZeroPointTensor sind { 1, 1, 1, 1 }
.
FilterTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Filterdaten enthält. Die erwarteten Dimensionen des FilterTensor sind { FilterBatchCount, FilterChannelCount, FilterHeight, FilterWidth }
.
FilterZeroPointTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Ein optionaler Tensor, der die Filter-Nullpunktdaten enthält. Die erwarteten Dimensionen des FilterZeroPointTensor sind { 1, 1, 1, 1 }
, wenn eine Quantisierung pro Tensor erforderlich ist oder { 1, OutputChannelCount, 1, 1 }
eine Quantisierung pro Kanal erforderlich ist.
OutputTensor
Typ: const DML_TENSOR_DESC*
Der Tensor, in den die Ergebnisse geschrieben werden sollen. Die erwarteten Dimensionen des OutputTensor sind { BatchCount, OutputChannelCount, OutputHeight, OutputWidth }
.
DimensionCount
Typ: UINT
Die Anzahl der räumlichen Dimensionen für den Konvolutionsvorgang. Räumliche Dimensionen sind die niedrigeren Dimensionen des FaltungsfilterTensor. Dieser Wert bestimmt auch die Größe der Arrays Strides, Dilations, StartPadding und EndPadding . Nur der Wert 2 wird unterstützt.
Strides
Typ: _Field_size_(DimensionCount) const UINT*
Ein Array, das die Schritte des Konvolutionsvorgangs enthält. Diese Schritte werden auf den Faltungsfilter angewendet. Sie sind getrennt von den Tensorschritten, die in DML_TENSOR_DESC enthalten sind.
Dilations
Typ: _Field_size_(DimensionCount) const UINT*
Ein Array, das die Dilatierungen des Konvolutionsvorgangs enthält. Dilatierungen sind Schritte, die auf die Elemente des Filterkernels angewendet werden. Dies hat den Effekt, dass ein größerer Filterkernel simuliert wird, indem die internen Filterkernelelemente mit Nullen aufgefüllt werden.
StartPadding
Typ: _Field_size_(DimensionCount) const UINT*
Ein Array, das die Abstandswerte enthält, die am Anfang jeder räumlichen Dimension des Filters und des Eingabe tensors des Konvolutionsvorgangs angewendet werden sollen.
EndPadding
Typ: _Field_size_(DimensionCount) const UINT*
Ein Array, das die Abstandswerte enthält, die am Ende jeder räumlichen Dimension des Filters und des Eingabe tensors des Konvolutionsvorgangs angewendet werden sollen.
GroupCount
Typ: UINT
Die Anzahl der Gruppen, in die der Faltungsvorgang unterteilt werden soll. GroupCount kann verwendet werden, um tiefenweise Konvolution zu erreichen, indem GroupCount auf die Anzahl der Eingabekanäle festgelegt wird. Dadurch wird die Konvolution in eine separate Konvolution pro Eingabekanal aufgeteilt.
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_2_1
eingeführt.
Tensoreinschränkungen
- FilterZeroPointTensor und InputZeroPointTensor müssen über dieselbe DimensionCount verfügen.
- FilterTensor, InputTensor und OutputTensor müssen über dieselbe DimensionCount verfügen.
- InputTensor und InputZeroPointTensor müssen denselben Datentyp aufweisen.
- FilterTensor und FilterZeroPointTensor müssen denselben Datentyp aufweisen.
Tensorunterstützung
DML_FEATURE_LEVEL_4_0 und höher
Tensor | Variante | Dimensionen | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|---|
InputTensor | Eingabe | { BatchCount, InputChannelCount, [InputHeight], InputWidth } | 3 bis 4 | INT8, UINT8 |
InputZeroPointTensor | Optionale Eingabe | { [1], [1], [1], 1 } | 1 bis 4 | INT8, UINT8 |
FilterTensor | Eingabe | { FilterBatchCount, FilterChannelCount, [FilterHeight], FilterWidth } | 3 bis 4 | INT8, UINT8 |
FilterZeroPointTensor | Optionale Eingabe | { [1], FilterZeroPointChannelCount, [1], [1] } | 1 bis 4 | INT8, UINT8 |
OutputTensor | Ausgabe | { BatchCount, OutputChannelCount, [OutputHeight], OutputWidth } | 3 bis 4 | INT32 |
DML_FEATURE_LEVEL_2_1 und höher
Tensor | Variante | Dimensionen | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|---|
InputTensor | Eingabe | { BatchCount, InputChannelCount, InputHeight, InputWidth } | 4 | INT8, UINT8 |
InputZeroPointTensor | Optionale Eingabe | { 1, 1, 1, 1 } | 4 | INT8, UINT8 |
FilterTensor | Eingabe | { FilterBatchCount, FilterChannelCount, FilterHeight, FilterWidth } | 4 | INT8, UINT8 |
FilterZeroPointTensor | Optionale Eingabe | { 1, FilterZeroPointChannelCount, 1, 1 } | 4 | INT8, UINT8 |
OutputTensor | Ausgabe | { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } | 4 | INT32 |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 Build 20348 |
Unterstützte Mindestversion (Server) | Windows 10 Build 20348 |
Kopfzeile | directml.h |