Compartir a través de


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