Compartir a través de


estructura DML_SLICE_GRAD_OPERATOR_DESC (directml.h)

Calcula los degradados de la propiedad inversa para Slice (consulte DML_SLICE1_OPERATOR_DESC).

Recuerde que DML_SLICE1_OPERATOR_DESC extrae una subregión de un tensor de entrada. Dado un InputGradientTensor con los mismos tamaños que la salida de un DML_SLICE1_OPERATOR_DESC equivalente, este operador genera un OutputGradientTensor con los mismos tamaños que la entrada de DML_SLICE1_OPERATOR_DESC. Los elementos segmentados se propagan a la salida y todos los demás elementos se establecen en 0.

Por ejemplo, considere una DML_SLICE1_OPERATOR_DESC que extrae los siguientes elementos de un tensor:

InputTensor            OutputTensor
[[a, b, c, d],
 [e, f, g, h],   Slice   [[a, c],
 [i, j, k, l],    -->     [i, k]]
 [m, n, o, p]]

Si se proporciona el mismo inputWindowOffsets Sizes Strides// que en el ejemplo anterior, este operador realizaría la siguiente transformación.

InputGradientTensor       OutputGradientTensor
                             [[a, 0, c, 0],
      [[a, c],   SliceGrad    [0, 0, 0, 0],
       [i, k]]      -->       [i, 0, k, 0],
                              [0, 0, 0, 0]]

Sintaxis

struct DML_SLICE_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputGradientTensor;
  const DML_TENSOR_DESC *OutputGradientTensor;
  UINT                  DimensionCount;
  const UINT            *InputWindowOffsets;
  const UINT            *InputWindowSizes;
  const INT             *InputWindowStrides;
};

Miembros

InputGradientTensor

Tipo: const DML_TENSOR_DESC*

Tensor de degradado entrante. Normalmente, esto se obtiene a partir de la salida de la propiedad inversa de una capa anterior. Normalmente, este tensor tendría los mismos tamaños que la salida del DML_SLICE1_OPERATOR_DESC correspondiente en el paso hacia delante.

OutputGradientTensor

Tipo: const DML_TENSOR_DESC*

Tensor de salida que contiene los degradados de backpropagado. Normalmente, este tensor tendría los mismos tamaños que la entrada del DML_SLICE1_OPERATOR_DESC correspondiente en el paso hacia delante.

DimensionCount

Tipo: UINT

Número de elementos de las matrices InputWindowOffsets, InputWindowSizes y InputWindowStrides . Este valor debe ser igual a DimensionCount proporcionado en InputGradientTensor y OutputGradientTensor.

InputWindowOffsets

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte InputWindowOffsets en DML_SLICE1_OPERATOR_DESC.

InputWindowSizes

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte InputWindowSizes en DML_SLICE1_OPERATOR_DESC.

InputWindowStrides

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte InputWindowStrides en DML_SLICE1_OPERATOR_DESC.

Tenga en cuenta que, a diferencia de DML_SLICE1_OPERATOR_DESC, este operador requiere pasos distintos de cero. Esto se debe a que con un paso cero, es ambiguo para qué elemento de entrada se debe asignar a cada elemento de salida y, por lo tanto, no se puede realizar la propiedad backpropagation. Al igual que DML_SLICE1_OPERATOR_DESC, los pasos negativos voltean la dirección de la ventana de entrada a lo largo de ese eje.

Disponibilidad

Este operador se introdujo en DML_FEATURE_LEVEL_3_0.

Restricciones tensor

InputGradientTensor y OutputGradientTensor deben tener el mismo DataType y DimensionCount.

Compatibilidad con Tensor

DML_FEATURE_LEVEL_4_1 y versiones posteriores

Tensor Clase Recuentos de dimensiones admitidos Tipos de datos admitidos
InputGradientTensor Entrada De 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputGradientTensor Resultados De 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_3_1 y versiones posteriores

Tensor Clase Recuentos de dimensiones admitidos Tipos de datos admitidos
InputGradientTensor Entrada De 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputGradientTensor Resultados De 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_3_0 y versiones posteriores

Tensor Clase Recuentos de dimensiones admitidos Tipos de datos admitidos
InputGradientTensor Entrada De 4 a 5 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputGradientTensor Resultados De 4 a 5 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

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