Compartir a través de


estructura DML_ELEMENT_WISE_IF_OPERATOR_DESC (directml.h)

Selecciona elementos de ATensor o BTensor, según el valor del elemento correspondiente en ConditionTensor. Los elementos que no son cero de ConditionTensor seleccionan en ATensor, mientras que los elementos con valores cero seleccionan en BTensor.

f(cond, a, b) = a, if cond != 0
                b, otherwise

Example:
    [[1, 0], [1, 1]] // ConditionTensor
    [[1, 2], [3, 4]] // ATensor
    [[9, 8], [7, 6]] // BTensor

    [[1, 8], [3, 4]] // Output

Sintaxis

struct DML_ELEMENT_WISE_IF_OPERATOR_DESC {
  const DML_TENSOR_DESC *ConditionTensor;
  const DML_TENSOR_DESC *ATensor;
  const DML_TENSOR_DESC *BTensor;
  const DML_TENSOR_DESC *OutputTensor;
};

Miembros

ConditionTensor

Tipo: const DML_TENSOR_DESC*

Tensor de condición del que se va a leer.

ATensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene las entradas del lado izquierdo.

BTensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene las entradas del lado derecho.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensor de salida en el que se van a escribir los resultados.

Comentarios

Se puede usar para crear funcionalmente otros operadores de agregado, como LeakyRelu. Esta es una ilustración en pseudocódigo (no de la manera más eficaz, pero posible): LeakyRelu(x) = If(Less(x, 0), Mul(x, alpha), x).

Disponibilidad

Este operador se introdujo en DML_FEATURE_LEVEL_2_0.

Restricciones tensor

  • ATensor, BTensor, ConditionTensor y OutputTensor deben tener el mismo DimensionCount y Sizes.
  • ATensor, BTensor y OutputTensor deben tener el mismo DataType.

Compatibilidad con Tensor

DML_FEATURE_LEVEL_5_0 y versiones posteriores

Tensor Kind Recuentos de dimensiones admitidos Tipos de datos admitidos
ConditionTensor Entrada De 1 a 8 UINT8
ATensor Entrada De 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
BTensor Entrada De 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputTensor Resultados De 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_3_0 y versiones posteriores

Tensor Kind Recuentos de dimensiones admitidos Tipos de datos admitidos
ConditionTensor Entrada De 1 a 8 UINT8
ATensor Entrada De 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
BTensor Entrada De 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputTensor Resultados De 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_2_0 y versiones posteriores

Tensor Kind Recuentos de dimensiones admitidos Tipos de datos admitidos
ConditionTensor Entrada 4 UINT8
ATensor Entrada 4 FLOAT16
BTensor Entrada 4 FLOAT16
OutputTensor Resultados 4 FLOAT16

Requisitos

   
Cliente mínimo compatible Windows 10, versión 2004 (10.0; Compilación 19041)
Servidor mínimo compatible Windows Server, versión 2004 (10.0; Compilación 19041)
Encabezado directml.h