Compartir a través de


Estructura DML_RESAMPLE_GRAD1_OPERATOR_DESC (directml.h)

Calcula gradientes de retropropagación para DML_RESAMPLE2_OPERATOR_DESC.

DML_RESAMPLE2_OPERATOR_DESC vuelve a escalar dimensiones arbitrarias del tensor de entrada mediante el muestreo de vecinos más próximos o la interpolación bilineal. Si tenemos un inputGradientTensor con los mismos tamaños que la salida de un DML_RESAMPLE2_OPERATOR_DESC equivalente, este operador genera un valor de outputGradientTensor con los mismos tamaños que la entrada del DML_RESAMPLE2_OPERATOR_DESC.

Por ejemplo, piense en un DML_RESAMPLE2_OPERATOR_DESC que realiza un escalado de vecino más próximo de 1,5x a lo ancho y 0,5x a lo alto:

InputTensor           OutputTensor
[[1, 2],   Resample    [1, 1, 2]
 [3, 4]]      -->      

Observe cómo el elemento 0 del tensor de entrada (con el valor 1) contribuye a dos elementos de la salida; el primer elemento (con el valor 2) contribuye a un elemento de la salida; y los elementos segundo y tercero (con valores 3 y 4) no contribuyen a ningún elemento de la salida.

El DML_RESAMPLE_GRAD1_OPERATOR_DESC correspondiente realizaría lo siguiente:

InputGradientTensor           OutputGradientTensor
    [4, 5, 6]      ResampleGrad    [[9, 6],
                       -->          [0, 0]]

Observe que los valores de OutputGradientTensor representan las contribuciones ponderadas de ese elemento a OutputTensor durante el operador DML_RESAMPLE2_OPERATOR_DESC original.

Importante

Esta API está disponible como parte del paquete redistribuible independiente DirectML (consulte la versión 1.9 y versiones posteriores de Microsoft.AI.DirectML). Consulte también el historial de versiones de DirectML.

Sintaxis

struct DML_RESAMPLE_GRAD1_OPERATOR_DESC
{
    const DML_TENSOR_DESC* InputGradientTensor;
    const DML_TENSOR_DESC* OutputGradientTensor;
    DML_INTERPOLATION_MODE InterpolationMode;
    DML_AXIS_DIRECTION RoundingDirection;
    UINT DimensionCount;
    _Field_size_(DimensionCount) const FLOAT* Scales;
    _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets;
    _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets;
};

Miembros

InputGradientTensor

Tipo: const DML_TENSOR_DESC*

Tensor de gradiente entrante. Normalmente, se obtiene de la salida de la retropropagación de una capa anterior. Normalmente, este tensor tendría los mismos tamaños que la salida del DML_RESAMPLE2_OPERATOR_DESC correspondiente en el pase hacia delante.

OutputGradientTensor

Tipo: const DML_TENSOR_DESC*

Tensor de salida que contiene los gradientes de retropropagación. Normalmente, este tensor tendría los mismos tamaños que la entrada del DML_RESAMPLE2_OPERATOR_DESC correspondiente en el pase hacia delante.

InterpolationMode

Tipo: DML_INTERPOLATION_MODE

Consulte DML_RESAMPLE2_OPERATOR_DESC::InterpolationMode.

RoundingDirection

Tipo: DML_AXIS_DIRECTION

Consulte DML_RESAMPLE2_OPERATOR_DESC::RoundingDirection.

DimensionCount

Tipo: UINT

Número de elementos de las matrices Scales, InputPixelOffsets y OutputPixelOffsets. Este valor debe ser igual al valor de DimensionCount proporcionado en InputGradientTensor y OutputGradientTensor.

Scales

Tipo: _Field_size_(DimensionCount) const FLOAT*

Consulte DML_RESAMPLE2_OPERATOR_DESC::Scales.

InputPixelOffsets

Tipo: _Field_size_(DimensionCount) const FLOAT*

Consulte DML_RESAMPLE2_OPERATOR_DESC::InputPixelOffsets.

OutputPixelOffsets

Tipo: _Field_size_(DimensionCount) const FLOAT*

Consulte DML_RESAMPLE2_OPERATOR_DESC::OutputPixelOffsets.

Comentarios

Este operador es equivalente a DML_RESAMPLE_GRAD_OPERATOR_DESC cuando InterpolationMode está establecido en DML_INTERPOLATION_MODE_LINEAR; o cuando InterpolationMode está establecido en DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR y RoundingDirection en DML_AXIS_DIRECTION_DECREASING, y el valor de OutputPixelOffsets se ajusta con un -0,5 adicional.

Disponibilidad

Este operador se introdujo en DML_FEATURE_LEVEL_5_1.

Restricciones de tensor

InputGradientTensor y OutputGradientTensor deben tener el mismo DataType y DimensionCount.

Compatibilidad del tensor

Tensor Clase Recuentos de dimensiones admitidos Tipos de datos admitidos
InputGradientTensor Entrada De 1 a 4 FLOAT32, FLOAT16
OutputGradientTensor Salida De 1 a 4 FLOAT32, FLOAT16

Requisitos

   
Encabezado directml.h