Condividi tramite


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