Estructura DML_QUANTIZED_LINEAR_AVERAGE_POOLING_OPERATOR_DESC (directml.h)
Promedios de valores cuantificados en los elementos de la ventana deslizante sobre el tensor de entrada. Este operador es matemáticamente equivalente a descuantificar las entradas, luego realizar la agrupación promedio y, a continuación, cuantificar la salida.
Función descuantificar
f(Input, Scale, ZeroPoint) = (Input - ZeroPoint) * Scale
Función cuantificar
f(Input, Scale, ZeroPoint) = clamp(round(Input / Scale) + ZeroPoint, Min, Max)
Importante
Esta API está disponible como parte del paquete redistribuible independiente DirectML (consulte la versión 1.13 y versiones posteriores de Microsoft.AI.DirectML). Consulte también el historial de versiones de DirectML.
Sintaxis
struct DML_QUANTIZED_LINEAR_AVERAGE_POOLING_OPERATOR_DESC
{
const DML_TENSOR_DESC* InputTensor;
const DML_TENSOR_DESC* InputScaleTensor;
_Maybenull_ const DML_TENSOR_DESC* InputZeroPointTensor;
const DML_TENSOR_DESC* OutputScaleTensor;
_Maybenull_ const DML_TENSOR_DESC* OutputZeroPointTensor;
const DML_TENSOR_DESC* OutputTensor;
UINT DimensionCount;
_Field_size_(DimensionCount) const UINT* Strides;
_Field_size_(DimensionCount) const UINT* WindowSize;
_Field_size_(DimensionCount) const UINT* StartPadding;
_Field_size_(DimensionCount) const UINT* EndPadding;
_Field_size_(DimensionCount) const UINT* Dilations;
BOOL IncludePadding;
};
Miembros
InputTensor
Tipo: const DML_TENSOR_DESC*
Un tensor de entrada de Sizes{ BatchCount, ChannelCount, Height, Width }
para 4D y { BatchCount, ChannelCount, Depth, Height, Weight }
para 5D.
InputScaleTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de escala de InputTensor. Las dimensiones esperadas de InputScaleTensor son { 1, 1, 1, 1 }
si se requiere la cuantificación por tensor o { 1, ChannelCount, 1, 1 }
si se requiere la cuantificación por canal. Estos valores de escala se usan para descuantificar los valores de InputTensor.
InputZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos de punto cero de InputTensor. Las dimensiones esperadas de InputZeroPointTensor son { 1, 1, 1, 1 }
si se requiere la cuantificación por tensor o { 1, ChannelCount, 1, 1 }
si se requiere la cuantificación por canal. Estos valores de punto cero se usan para descuantificar los valores de InputTensor.
OutputScaleTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de escala de OutputTensor. Las dimensiones esperadas de OutputScaleTensor son { 1, 1, 1, 1 }
si se requiere la cuantificación por tensor o { 1, ChannelCount, 1, 1 }
si se requiere la cuantificación por canal. Estos valores de escala se usan para cuantificar los valores OutputTensor.
OutputZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos de punto cero de OutputTensor. Las dimensiones esperadas de OutputZeroPointTensor son { 1, 1, 1, 1 }
si se requiere la cuantificación por tensor o { 1, ChannelCount, 1, 1 }
si se requiere la cuantificación por canal. Este valor de punto cero se usa para cuantificar los valores de OutputTensor.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Descripción del tensor de salida. Los tamaños del tensor de salida se pueden procesar de la siguiente manera.
OutputTensor->Sizes[0] = InputTensor->Sizes[0];
OutputTensor->Sizes[1] = InputTensor->Sizes[1];
for (UINT i = 0; i < DimensionCount; ++i) {
UINT PaddedSize = InputTensor->Sizes[i + 2] + StartPadding[i] + EndPadding[i];
OutputTensor->Sizes[i + 2] = (PaddedSize - WindowSizes[i]) / Strides[i] + 1;
}
DimensionCount
Tipo: UINT
Número de dimensiones espaciales del tensor de entrada InputTensor, que también corresponde al número de dimensiones de la ventana deslizante WindowSize. Este valor también determina el tamaño de las matrices Strides, StartPadding y EndPadding. Debe establecerse en 2 cuando InputTensor es 4D y 3 cuando es un tensor 5D.
Strides
Tipo: _Field_size_(DimensionCount) const UINT*
Los pasos de las dimensiones de la ventana deslizante de tamaños { Height, Width }
cuando DimensionCount se establece en 2 o { Depth, Height, Width }
cuando se establece en 3.
WindowSize
Tipo: _Field_size_(DimensionCount) const UINT*
Las dimensiones de la ventana deslizante en { Height, Width }
cuando DimensionCount se establece en 2 o { Depth, Height, Width }
cuando se establece en 3.
StartPadding
Tipo: _Field_size_(DimensionCount) const UINT*
Número de elementos de relleno que se aplicarán al principio de cada dimensión espacial del tensor de entrada InputTensor. Los valores se encuentran en { Height, Width }
cuando DimensionCount se establece en 2 o { Depth, Height, Width }
cuando se establece en 3.
EndPadding
Tipo: _Field_size_(DimensionCount) const UINT*
Número de elementos de relleno que se aplicarán al final de cada dimensión espacial del tensor de entrada InputTensor. Los valores se encuentran en { Height, Width }
cuando DimensionCount se establece en 2 o { Depth, Height, Width }
cuando se establece en 3.
Dilations
Tipo: _Field_size_(DimensionCount) const UINT*
Los valores de cada dimensión espacial del tensor de entrada InputTensor por los que se selecciona un elemento dentro de la ventana deslizante para cada elemento de ese valor. Los valores se encuentran en { Height, Width }
cuando DimensionCount se establece en 2 o { Depth, Height, Width }
cuando se establece en 3.
IncludePadding
Tipo: BOOL
Indica si se deben incluir los elementos de relleno alrededor de los bordes espaciales al calcular el valor medio en todos los elementos de la ventana deslizante. Cuando el valor se establece en FALSE, los elementos de relleno no se cuentan como parte del valor divisor del cálculo de promedio.
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_6_2.
Restricciones de tensor
- InputTensor y OutputTensor deben tener el mismo DimensionCount.
- InputTensor y InputZeroPointTensor deben tener el mismo DataType.
- OutputTensor y OutputZeroPointTensor deben tener el mismo DataType.
Compatibilidad del tensor
Tensor | Variante | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|
InputTensor | Entrada | De 4 a 5 | INT8, UINT8 |
InputScaleTensor | Entrada | 1 a 5 | FLOAT32 |
InputZeroPointTensor | Entrada opcional | 1 a 5 | INT8, UINT8 |
OutputScaleTensor | Entrada | 1 a 5 | FLOAT32 |
OutputZeroPointTensor | Entrada opcional | 1 a 5 | INT8, UINT8 |
OutputTensor | Salida | De 4 a 5 | INT8, UINT8 |
Requisitos
Encabezado | directml.h |