estructura DML_CONVOLUTION_INTEGER_OPERATOR_DESC (directml.h)
Realiza una convolución del FilterTensor con InputTensor. Este operador realiza la convolución hacia delante en datos enteros. También se pueden usar tensores de punto cero opcionales para restar valores de punto cero del tensor de entrada y filtro.
Sintaxis
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;
};
Miembros
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de entrada. Las dimensiones esperadas de InputTensor son { BatchCount, InputChannelCount, InputHeight, InputWidth }
.
InputZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos de punto cero de entrada. Las dimensiones esperadas de InputZeroPointTensor son { 1, 1, 1, 1 }
.
FilterTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de filtro. Las dimensiones esperadas de FilterTensor son { FilterBatchCount, FilterChannelCount, FilterHeight, FilterWidth }
.
FilterZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos de punto cero de filtro. Las dimensiones esperadas del FilterZeroPointTensor son { 1, 1, 1, 1 }
si se requiere la cuantificación por tensor o { 1, OutputChannelCount, 1, 1 }
si se requiere la cuantificación por canal.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensor en el que se van a escribir los resultados. Las dimensiones esperadas de OutputTensor son { BatchCount, OutputChannelCount, OutputHeight, OutputWidth }
.
DimensionCount
Tipo: UINT
Número de dimensiones espaciales para la operación de convolución. Las dimensiones espaciales son las dimensiones inferiores del filterTensor de convolución. Este valor también determina el tamaño de las matrices Strides, Dilations, StartPadding y EndPadding . Solo se admite un valor de 2.
Strides
Tipo: _Field_size_(DimensionCount) const UINT*
Matriz que contiene los pasos de la operación de convolución. Estos pasos se aplican al filtro de convolución. Son independientes de los pasos de tensor incluidos en DML_TENSOR_DESC.
Dilations
Tipo: _Field_size_(DimensionCount) const UINT*
Matriz que contiene las dilaciones de la operación de convolución. Las dilaciones son intervalos aplicados a los elementos del kernel de filtro. Esto tiene el efecto de simular un kernel de filtro más grande rellenando los elementos del kernel de filtro interno con ceros.
StartPadding
Tipo: _Field_size_(DimensionCount) const UINT*
Matriz que contiene los valores de relleno que se van a aplicar al principio de cada dimensión espacial del tensor de filtro y entrada de la operación de convolución.
EndPadding
Tipo: _Field_size_(DimensionCount) const UINT*
Matriz que contiene los valores de relleno que se van a aplicar al final de cada dimensión espacial del tensor de filtro y entrada de la operación de convolución.
GroupCount
Tipo: UINT
Número de grupos en los que se divide la operación de convolución. GroupCount se puede usar para lograr la convolución de nivel de profundidad estableciendo GroupCount igual al recuento de canales de entrada. Esto divide la convolución en una convolución independiente por canal de entrada.
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_2_1
.
Restricciones tensor
- FilterZeroPointTensor y InputZeroPointTensor deben tener el mismo DimensionCount.
- FilterTensor, InputTensor y OutputTensor deben tener el mismo DimensionCount.
- InputTensor y InputZeroPointTensor deben tener el mismo DataType.
- FilterTensor y FilterZeroPointTensor deben tener el mismo DataType.
Compatibilidad con Tensor
DML_FEATURE_LEVEL_4_0 y versiones posteriores
Tensor | Clase | Dimensions | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|---|
InputTensor | Entrada | { BatchCount, InputChannelCount, [InputHeight], InputWidth } | De 3 a 4 | INT8, UINT8 |
InputZeroPointTensor | Entrada opcional | { [1], [1], [1], 1 } | De 1 a 4 | INT8, UINT8 |
FilterTensor | Entrada | { FilterBatchCount, FilterChannelCount, [FilterHeight], FilterWidth } | De 3 a 4 | INT8, UINT8 |
FilterZeroPointTensor | Entrada opcional | { [1], FilterZeroPointChannelCount, [1], [1] } | De 1 a 4 | INT8, UINT8 |
OutputTensor | Resultados | { BatchCount, OutputChannelCount, [OutputHeight], OutputWidth } | De 3 a 4 | INT32 |
DML_FEATURE_LEVEL_2_1 y versiones posteriores
Tensor | Clase | Dimensions | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|---|
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 | Resultados | { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } | 4 | INT32 |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | compilación 20348 de Windows 10 |
Servidor mínimo compatible | compilación 20348 de Windows 10 |
Encabezado | directml.h |