DML_CONVOLUTION_INTEGER_OPERATOR_DESC struttura (directml.h)
Esegue una convoluzione del FilterTensor con InputTensor. Questo operatore esegue la convoluzione in avanti sui dati integer. I tensori facoltativi di zero punto possono essere usati anche per sottrarre i valori di zero punto dal tensore di input e filtro.
Sintassi
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;
};
Members
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensor contenente i dati di input. Le dimensioni previste dell'oggetto InputTensor sono { BatchCount, InputChannelCount, InputHeight, InputWidth }
.
InputZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensore facoltativo contenente i dati del punto zero di input. Le dimensioni previste dell'oggetto InputZeroPointTensor sono { 1, 1, 1, 1 }
.
FilterTensor
Tipo: const DML_TENSOR_DESC*
Tensor contenente i dati del filtro. Le dimensioni previste del FilterTensor sono { FilterBatchCount, FilterChannelCount, FilterHeight, FilterWidth }
.
FilterZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensore facoltativo contenente i dati del punto zero filtro. Le dimensioni previste del filterZeroPointTensor sono { 1, 1, 1, 1 }
se è necessaria la quantizzazione per tensore o { 1, OutputChannelCount, 1, 1 }
se è necessaria la quantizzazione per canale.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensor in cui scrivere i risultati. Le dimensioni previste dell'outputTensor sono { BatchCount, OutputChannelCount, OutputHeight, OutputWidth }
.
DimensionCount
Tipo: UINT
Numero di dimensioni spaziali per l'operazione di convoluzione. Le dimensioni spaziali sono le dimensioni inferiori del filtro di voluzioneTensor. Questo valore determina anche le dimensioni delle matrici Strides, Dilations, StartPadding e EndPadding. È supportato solo un valore pari a 2.
Strides
Tipo: _Field_size_(DimensionCount) const UINT*
Matrice contenente gli stride dell'operazione di convoluzione. Questi passi vengono applicati al filtro di convoluzione. Sono separati dagli stridi tensore inclusi in DML_TENSOR_DESC.
Dilations
Tipo: _Field_size_(DimensionCount) const UINT*
Matrice contenente le dilatazioni dell'operazione di convoluzione. Le dilazione vengono applicate agli elementi del kernel di filtro. Questo ha l'effetto di simulare un kernel di filtro più grande spaziando gli elementi del kernel del filtro interno con zero.
StartPadding
Tipo: _Field_size_(DimensionCount) const UINT*
Matrice contenente i valori di riempimento da applicare all'inizio di ogni dimensione spaziale del filtro e del tensore di input dell'operazione di convoluzione.
EndPadding
Tipo: _Field_size_(DimensionCount) const UINT*
Matrice contenente i valori di riempimento da applicare alla fine di ogni dimensione spaziale del filtro e del tensore di input dell'operazione di convoluzione.
GroupCount
Tipo: UINT
Numero di gruppi in cui dividere l'operazione di convoluzione. GroupCount può essere usato per ottenere una convoluzione approfondita impostando GroupCount uguale al numero di canali di input. In questo modo la convoluzione viene divisa in una convoluzione separata per canale di input.
Disponibilità
Questo operatore è stato introdotto in DML_FEATURE_LEVEL_2_1
.
Vincoli tensor
- FilterZeroPointTensor e InputZeroPointTensor devono avere lo stesso DimensionCount.
- FilterTensor, InputTensor eOutputTensor devono avere lo stesso DimensionCount.
- InputTensor e InputZeroPointTensor devono avere lo stesso Tipo di dati.
- FilterTensor e FilterZeroPointTensor devono avere lo stesso oggetto DataType.
Supporto di Tensor
DML_FEATURE_LEVEL_4_0 e versioni successive
Tensore | Tipo | Dimensioni | Conteggi delle dimensioni supportate | Tipi di dati supportati |
---|---|---|---|---|
InputTensor | Input | { BatchCount, InputChannelCount, [InputHeight], InputWidth } | da 3 a 4 | INT8, UINT8 |
InputZeroPointTensor | Input facoltativo | { [1], [1], [1], 1 } | da 1 a 4 | INT8, UINT8 |
FilterTensor | Input | { FilterBatchCount, FilterChannelCount, [FilterHeight], FilterWidth } | da 3 a 4 | INT8, UINT8 |
FilterZeroPointTensor | Input facoltativo | { [1], FilterZeroPointChannelCount, [1], [1] } | da 1 a 4 | INT8, UINT8 |
OutputTensor | Output | { BatchCount, OutputChannelCount, [OutputHeight], OutputWidth } | da 3 a 4 | INT32 |
DML_FEATURE_LEVEL_2_1 e versioni successive
Tensore | Tipo | Dimensioni | Conteggi delle dimensioni supportate | Tipi di dati supportati |
---|---|---|---|---|
InputTensor | Input | { BatchCount, InputChannelCount, InputHeight, InputWidth } | 4 | INT8, UINT8 |
InputZeroPointTensor | Input facoltativo | { 1, 1, 1, 1 } | 4 | INT8, UINT8 |
FilterTensor | Input | { FilterBatchCount, FilterChannelCount, FilterHeight, FilterWidth } | 4 | INT8, UINT8 |
FilterZeroPointTensor | Input facoltativo | { 1, FilterZeroPointChannelCount, 1, 1 } | 4 | INT8, UINT8 |
OutputTensor | Output | { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } | 4 | INT32 |
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 Build 20348 |
Server minimo supportato | Windows 10 Build 20348 |
Intestazione | directml.h |