struttura DML_ELEMENT_WISE_IF_OPERATOR_DESC (directml.h)
Seleziona gli elementi da ATensor o BTensor, a seconda del valore dell'elemento corrispondente in ConditionTensor. Gli elementi non zero di ConditionTensor selezionano da ATensor, mentre gli elementi con valori zero selezionano da 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
Sintassi
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;
};
Members
ConditionTensor
Tipo: const DML_TENSOR_DESC*
Tensore di condizioni da cui leggere.
ATensor
Tipo: const DML_TENSOR_DESC*
Tensore contenente gli input sul lato sinistro.
BTensor
Tipo: const DML_TENSOR_DESC*
Tensore contenente gli input sul lato destro.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensore di output in cui scrivere i risultati.
Commenti
Può essere usato per creare in modo funzionale altri operatori di aggregazione, ad esempio LeakyRelu. Ecco un'illustrazione in pseudo-codice (non il modo più efficiente, ma possibile): LeakyRelu(x) = If(Less(x, 0), Mul(x, alpha), x)
.
Disponibilità
Questo operatore è stato introdotto in DML_FEATURE_LEVEL_2_0
.
Vincoli tensor
- ATensor, BTensor, ConditionTensor e OutputTensor devono avere lo stesso DimensionCount e Sizes.
- ATensor, BTensor e OutputTensor devono avere lo stesso Tipo di dati.
Supporto di Tensor
DML_FEATURE_LEVEL_5_0 e versioni successive
Tensore | Tipo | Conteggi delle dimensioni supportati | Tipi di dati supportati |
---|---|---|---|
ConditionTensor | Input | da 1 a 8 | UINT8 |
ATensor | Input | da 1 a 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
BTensor | Input | da 1 a 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputTensor | Output | da 1 a 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_3_0 e versioni successive
Tensore | Tipo | Conteggi delle dimensioni supportati | Tipi di dati supportati |
---|---|---|---|
ConditionTensor | Input | da 1 a 8 | UINT8 |
ATensor | Input | da 1 a 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
BTensor | Input | da 1 a 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Output | da 1 a 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_2_0 e versioni successive
Tensore | Tipo | Conteggi delle dimensioni supportati | Tipi di dati supportati |
---|---|---|---|
ConditionTensor | Input | 4 | UINT8 |
ATensor | Input | 4 | FLOAT16 |
BTensor | Input | 4 | FLOAT16 |
OutputTensor | Output | 4 | FLOAT16 |
Requisiti
Client minimo supportato | Windows 10 versione 2004 (10.0; Build 19041) |
Server minimo supportato | Windows Server, versione 2004 (10.0; Build 19041) |
Intestazione | directml.h |