Compartilhar via


estrutura DML_CONVOLUTION_INTEGER_OPERATOR_DESC (directml.h)

Executa uma convolução do FilterTensor com o InputTensor. Esse operador executa a convolução de encaminhamento em dados inteiros. Tensores de ponto zero opcionais também podem ser usados para subtrair valores de ponto zero do tensor de entrada e filtro.

Sintaxe

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;
};

Membros

InputTensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém os dados de entrada. As dimensões esperadas do InputTensor são { BatchCount, InputChannelCount, InputHeight, InputWidth }.

InputZeroPointTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Um tensor opcional que contém os dados de ponto zero de entrada. As dimensões esperadas do InputZeroPointTensor são { 1, 1, 1, 1 }.

FilterTensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém os dados de filtro. As dimensões esperadas do FilterTensor são { FilterBatchCount, FilterChannelCount, FilterHeight, FilterWidth }.

FilterZeroPointTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Um tensor opcional que contém os dados de ponto zero de filtro. As dimensões esperadas do FilterZeroPointTensor serão { 1, 1, 1, 1 } se a quantização por tensor for necessária ou { 1, OutputChannelCount, 1, 1 } se a quantização por canal for necessária.

OutputTensor

Tipo: const DML_TENSOR_DESC*

O tensor no qual gravar os resultados. As dimensões esperadas do OutputTensor são { BatchCount, OutputChannelCount, OutputHeight, OutputWidth }.

DimensionCount

Tipo: UINT

O número de dimensões espaciais para a operação de convolução. Dimensões espaciais são as dimensões inferiores do FilterTensor de convolução. Esse valor também determina o tamanho das matrizes Strides, Dilations, StartPadding e EndPadding . Há suporte apenas para um valor de 2.

Strides

Tipo: _Field_size_(DimensionCount) const UINT*

Uma matriz que contém os passos da operação de convolução. Esses passos são aplicados ao filtro de convolução. Eles são separados dos passos tensores incluídos em DML_TENSOR_DESC.

Dilations

Tipo: _Field_size_(DimensionCount) const UINT*

Uma matriz que contém as vibrações da operação de convolução. As vibrações são avanços aplicados aos elementos do kernel de filtro. Isso tem o efeito de simular um kernel de filtro maior preenchendo os elementos de kernel de filtro interno com zeros.

StartPadding

Tipo: _Field_size_(DimensionCount) const UINT*

Uma matriz que contém os valores de preenchimento a serem aplicados ao início de cada dimensão espacial do filtro e tensor de entrada da operação de convolução.

EndPadding

Tipo: _Field_size_(DimensionCount) const UINT*

Uma matriz que contém os valores de preenchimento a serem aplicados ao final de cada dimensão espacial do filtro e tensor de entrada da operação de convolução.

GroupCount

Tipo: UINT

O número de grupos nos quais dividir a operação de convolução. GroupCount pode ser usado para obter convolução em profundidade definindo GroupCount igual à contagem de canais de entrada. Isso divide a convolução em uma convolução separada por canal de entrada.

Disponibilidade

Esse operador foi introduzido no DML_FEATURE_LEVEL_2_1.

Restrições do Tensor

  • FilterZeroPointTensor e InputZeroPointTensor devem ter o mesmo DimensionCount.
  • FilterTensor, InputTensor e OutputTensor devem ter o mesmo DimensionCount.
  • InputTensor e InputZeroPointTensor devem ter o mesmo DataType.
  • FilterTensor e FilterZeroPointTensor devem ter o mesmo DataType.

Suporte ao Tensor

DML_FEATURE_LEVEL_4_0 e superior

Tensor Tipo Dimensões Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada { BatchCount, InputChannelCount, [InputHeight], InputWidth } 3 a 4 INT8, UINT8
InputZeroPointTensor Entrada opcional { [1], [1], [1], 1 } 1 a 4 INT8, UINT8
FilterTensor Entrada { FilterBatchCount, FilterChannelCount, [FilterHeight], FilterWidth } 3 a 4 INT8, UINT8
FilterZeroPointTensor Entrada opcional { [1], FilterZeroPointChannelCount, [1], [1] } 1 a 4 INT8, UINT8
OutputTensor Saída { BatchCount, OutputChannelCount, [OutputHeight], OutputWidth } 3 a 4 INT32

DML_FEATURE_LEVEL_2_1 e superior

Tensor Tipo Dimensões Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada { BatchCount, InputChannelCount, InputHeight, InputWidth } 4 INT8, UINT8
InputZeroPointTensor Entrada opcional { 1, 1, 1, 1 } 4 INT8, UINT8
FilterTensor Entrada { FilterBatchCount, FilterChannelCount, FilterHeight, FilterWidth } 4 INT8, UINT8
FilterZeroPointTensor Entrada opcional { 1, FilterZeroPointChannelCount, 1, 1 } 4 INT8, UINT8
OutputTensor Saída { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } 4 INT32

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10 Build 20348
Servidor mínimo com suporte Windows 10 Build 20348
Cabeçalho directml.h