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 |