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 |