estrutura DML_ELEMENT_WISE_IF_OPERATOR_DESC (directml.h)
Seleciona elementos de ATensor ou BTensor, dependendo do valor do elemento correspondente em ConditionTensor. Elementos não zero de ConditionTensor selecionam de ATensor, enquanto elementos com valor zero são selecionados de 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
Sintaxe
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;
};
Membros
ConditionTensor
Tipo: const DML_TENSOR_DESC*
O tensor de condição do qual ler.
ATensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém as entradas do lado esquerdo.
BTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém as entradas do lado direito.
OutputTensor
Tipo: const DML_TENSOR_DESC*
O tensor de saída para o qual gravar os resultados.
Comentários
Pode ser usado para compilar funcionalmente outros operadores de agregação, como LeakyRelu. Aqui está uma ilustração em pseudocódigo (não da maneira mais eficiente, mas possível): LeakyRelu(x) = If(Less(x, 0), Mul(x, alpha), x)
.
Disponibilidade
Esse operador foi introduzido em DML_FEATURE_LEVEL_2_0
.
Restrições do Tensor
- ATensor, BTensor, ConditionTensor e OutputTensor devem ter os mesmos DimensionCount e Sizes.
- ATensor, BTensor e OutputTensor devem ter o mesmo DataType.
Suporte ao Tensor
DML_FEATURE_LEVEL_5_0 e superior
Tensor | Tipo | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|
ConditionTensor | Entrada | 1 a 8 | UINT8 |
Atensor | Entrada | 1 a 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
BTensor | Entrada | 1 a 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputTensor | Saída | 1 a 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_3_0 e superior
Tensor | Tipo | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|
ConditionTensor | Entrada | 1 a 8 | UINT8 |
Atensor | Entrada | 1 a 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
BTensor | Entrada | 1 a 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Saída | 1 a 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_2_0 e superior
Tensor | Tipo | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|
ConditionTensor | Entrada | 4 | UINT8 |
Atensor | Entrada | 4 | FLOAT16 |
BTensor | Entrada | 4 | FLOAT16 |
OutputTensor | Saída | 4 | FLOAT16 |
Requisitos
Cliente mínimo com suporte | Windows 10, versão 2004 (10.0; Build 19041) |
Servidor mínimo com suporte | Windows Server, versão 2004 (10.0; Build 19041) |
Cabeçalho | directml.h |